Mysql 无法在带有节点express和ejs的html页面上显示由express验证程序生成的错误

Mysql 无法在带有节点express和ejs的html页面上显示由express验证程序生成的错误,mysql,node.js,express,ejs,express-validator,Mysql,Node.js,Express,Ejs,Express Validator,我正在使用nodejs、ejs、express和express验证器。我正在尝试在我的注册页面上使用express validator(注册,ejs)。Express validator在对象数组中生成错误。当我在console.log中记录结果(在var错误中)时,我得到: formatter:[函数:格式化程序], 错误: [{值:“kl”, msg:“用户名必须介于4到15个字符之间。”, 参数:“用户名”, 位置:'正文'}, {值:“kl”, msg:“密码必须介于8到100个字符之

我正在使用nodejs、ejs、express和express验证器。我正在尝试在我的注册页面上使用express validator(注册,ejs)。Express validator在对象数组中生成错误。当我在console.log中记录结果(在var错误中)时,我得到:

formatter:[函数:格式化程序],
错误:
[{值:“kl”,
msg:“用户名必须介于4到15个字符之间。”,
参数:“用户名”,
位置:'正文'},
{值:“kl”,
msg:“密码必须介于8到100个字符之间。”,
参数:“密码”,
位置:'正文'},
{值:'klsdflksdf',
msg:'密码必须匹配',
参数:“confirmPassword”,

位置:'body'}]}
检查是否存在任何验证错误的方法应该不同。在这一行代码之后,您不会得到iterable数组

const errors = validationResult(req);
您需要使用
isEmpty()
方法检查是否存在错误;和
array()。
通常,错误处理程序如下所示:

const errorHandler = (req, res, next) => {
    let errors = validationResult(req);
    if (!errors.isEmpty()) {
        errors = errors.array();
        // some other stuff
    } else next();
};

来源:

检查是否存在任何验证错误的方法应该不同。在这一行代码之后,您不会得到iterable数组

const errors = validationResult(req);
您需要使用
isEmpty()
方法检查是否存在错误;和
array()。
通常,错误处理程序如下所示:

const errorHandler = (req, res, next) => {
    let errors = validationResult(req);
    if (!errors.isEmpty()) {
        errors = errors.array();
        // some other stuff
    } else next();
};

来源:

只是一个建议<在
中,代码>用于对象属性的迭代,而不是用于数组。对于这个
数组。forEach
For of
更好。只是一个建议<在
中,代码>用于对象属性的迭代,而不是用于数组。对于
数组,forEach
For of
更好。