【问题标题】:How to validate and handle a form in Express (NodeJS)如何在 Express (NodeJS) 中验证和处理表单
【发布时间】:2011-04-05 16:18:55
【问题描述】:

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

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

如果可以在客户端使用相同的验证,那就太好了。

有没有人用过或写过什么好东西?

【问题讨论】:

    标签: forms node.js express


    【解决方案1】:

    看起来有一个位于https://github.com/caolan/forms 的模块。我从未使用过它,但它似乎功能相当齐全。

    【讨论】:

    • 我不喜欢别人控制我的表单标记的想法。
    • @chovy:你应该更仔细地阅读文档,而不是把每个人都引向错误的方向。当您使用 field.toHTML() 的 form.toHTML() 呈现表单时,您可以在参数中传递自定义迭代器。迭代器是 toHTML 将用来呈现表单/字段的函数。您可以制作自定义小部件、验证器、迭代器等...
    • 你们俩都有道理。扩展@chovy 所说的内容,即使您传递了一个迭代器,也表明必须使用.toHTML() 呈现表单。与此相反并扩展@Jean-Philippe 所说的内容,您实际上甚至不需要使用.toHTML() 来获取处理表单所需的几乎所有内容(尽管需要非常仔细地阅读文档才能确定这一点出)。
    【解决方案2】:

    这看起来也是可行的,并且仍在开发中: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
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 2019-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      相关资源
      最近更新 更多