如何在Express(NodeJS)中验证和处理表单

fad*_*bee 21 forms node.js express

Express是否有首选的表单处理和验证库?

我真的在寻找与Django形式相似的抽象级别 - 即模板中的验证和错误报告.

如果可以在客户端使用相同的验证,那将是很好的.

有没有人使用或写过任何好的东西?

Zik*_*kes 18

看起来有一个模块位于https://github.com/caolan/forms.我从来没有使用它,但它看起来相当全面.

  • @chovy:你应该更仔细地阅读文档而不是引导每个人走错方向.使用field.toHTML()的form.toHTML()渲染表单时,可以在参数中传递自定义迭代器.迭代器是toHTML用于呈现表单/字段的函数.您可以制作自定义小部件,验证器,迭代器等...... (8认同)
  • 我不喜欢别人控制我的表单标记的想法. (7认同)

cho*_*ovy 7

这看起来也很可行,并且仍在开发中:https://github.com/ctavan/express-validator

以下是验证表单提交(登录发布请求)的示例:

exports.login.post = function(req, res){
  req.assert('username', 'Enter username').notEmpty();
  req.assert('password', 'Enter password').notEmpty();
  res.locals.err = req.validationErrors(true);

  if ( res.locals.err ) {
    if ( req.xhr ) {
      res.send(401, { err: res.locals.err });
    } else {
      res.render('login', { err: res.locals.err });
    }

    return;
  }

 //authenticate user, data is valid
};
Run Code Online (Sandbox Code Playgroud)