express-validator抛出异常

时间:2012-01-11 04:58:44

标签: node.js

在我的nodejs app中过滤所有输入数据我使用了express-validator。像这样:

app.post('/', function (req, res) {
   req.sanitize('login').xss();
   req.sanitize('password').xss();

   //etc.
});

所以我的观点是:

form(action='/', method='POST')
  input(name='login', type='text')
  input(name='password', type='password')
  input(type='submit')

一切正常,但如果我省略登录字段,例如:

form(action='/', method='POST')
  input(name='login', type='text')
  input(name='password', type='password')
  input(type='submit')

然后我得到例外。为什么不存在express-validator检查param?

1 个答案:

答案 0 :(得分:8)

根据the documentation你错了。

  

验证错误

     

如何获得验证错误有两种选择:

req.assert('email', 'required').notEmpty();
req.assert('email', 'valid email required').isEmail();
req.assert('password', '6 to 20 characters required').len(6, 20);

var errors = req.validationErrors();
var mappedErrors = req.validationErrors(true);

您需要使用req.assert进行验证。 req.sanitize是清理输入,如下所示:

req.sanitize('postparam').toBoolean();