如何访问由.withMessage()方法生成的快速验证器中的消息?我的目标是使用res.render呈现错误消息,其中{messages =?}。函数本身运行良好。
下面是我的验证器函数
const userValidationRules = () => {
return [
//Whole Body Validation
body('username').isLength({ min: 5 }).withMessage('username must be at least 5 chars long'), //{"errors":[{"username":"username must be at least 5 chars long"}]}
body('password').isLength({ min: 5 }).withMessage('password must be at least 5 chars long'),
]
}
const validate = (req, res, next) => {
const errors = validationResult(req)
if (errors.isEmpty()) {
return next()
}
const extractedErrors = []
errors.array().map(err => extractedErrors.push({ [err.param]: err.msg }))
console.log("extractedErrors = "+ extractedErrors )
// return res.render("index", {
// messages : //display error messages here
// });
return res.status(422).json({
errors: extractedErrors,
})
}短用户名输出{“error”:{“username”:“username必须至少为5个字符”}}
我使用console.log()来查找消息值-“用户名必须至少是5个字符的长度”。
console.log("extractedErrors = "+ extractedErrors )记录了'extractedErrors= object Object‘,那么如何访问这个object?
console.log("extractedErrors = "+ extractedErrors"errors“)记录'extractedErrors=未定义‘
谢谢
发布于 2019-11-14 11:56:42
通常,每个结构化javascript错误在it.they中都有单独的错误消息和错误代码的逻辑...尝试使用以下代码:
console.log(extractedErrors["errors"].message)发布于 2019-11-15 08:57:10
为了解决这个问题,我最终将返回的错误重新映射到一个更容易访问的对象:
errors.array().map(err => extractedErrors.push( err.msg ));然后,我可以使用extractedErrors来获取消息。
https://stackoverflow.com/questions/58848625
复制相似问题