我使用节点v8.11.1,表达4.16.3和express-validator 5.2.0。我对同一个电子邮件字段进行了几次检查。这是我现在的路线
const { body, validationResult } = require('express-validator/check');
router.post('/save',
[
body('email').not().isEmpty().withMessage('email empty'),
body('email').isEmail().withMessage('not a valid email')
],
(req, res)=>{
const errors = validationResult(req).useFirstErrorOnly();
if (!errors.isEmpty()) {
req.session.msgs = errors.array();
res.redirect('/signup');
}
else {
//save the email in db
}
});
我收到以下错误TypeError: validationResult(...).useFirstErrorOnly is not a function
。
我基本上将我的代码基于docs中的示例,但是当我尝试以某种方式合并useFirstErrorOnly
时,我仍然失败了。
如果我不合并useFirstErrorOnly
,我会收到email empty
和not a valid email
消息,所以我猜我的代码工作正常,我无法使useFirstErrorOnly
工作。
有什么建议吗?感谢
答案 0 :(得分:0)
express-validator维护者在这里。
您不再使用useFirstErrorOnly
功能。这是快递验证器v3中的一个东西,但是在v4发布之后,它已经停止了
您现在必须validationResult(req).array({ onlyFirstError: true })
。
如果可以,请在我们建议使用.useFirstErrorOnly()
*的文档中指出我的位置,以便我可以修复它。
无论如何,我必须提一下,从那以后,这已经存在于遗留用户upgrade guide中。
*另外请记住不要遵循2017年8月之前发布的任何快速验证器教程,因为这些教程可能过时了。