我正在使用 nodejs/mongoDB/mongoose/express-validator,我正在尝试通过 validationResult(req) 输出错误消息。我的理解是,这会返回一个嵌套对象,然后我必须破坏它才能访问消息。
编辑:它是 express-validator 版本 4.x(2017 年 9 月),这就是为什么我找不到更好的文档/教程......所有当前可用的 tuts 都指的是不再起作用的方法。
app.post("/register",
check("username").isEmail().withMessage("Ungültige E-Mailadresse"),
check("password").isLength({ min: 4 }).withMessage("Ungültiges Passwort"),
check("password").equals("password-repeat").withMessage("Passwort stimmt nicht überein"),
function (req, res) {
var errors = validationResult(req).mapped();
if (errors) {
try {
var { username: { msg: username_error } } = errors;
} catch(e) {
console.log("Undefined shit u so");
}
try {
var { password: { msg: password_error } } = errors;
} catch(e) {
console.log("Undefined shit u so");
}
var messages = [username_error, password_error];
res.render("register", {
title: "Register",
errors: messages
})
} else {
res.redirect("/register");
}
})
上面的代码有效,但很痛苦......如果我不尝试/捕获所有可能的 TypeError(无法破坏未定义或 null),nodejs 崩溃。
有没有更好的方法来创建一个只有现有错误消息的数组?
谢谢!菲利普