【问题标题】:Best way of displaying form validation errors in a Node.js app using Express?使用 Express 在 Node.js 应用程序中显示表单验证错误的最佳方式?
【发布时间】:2014-01-20 16:17:15
【问题描述】:

我们的注册和登录表单需要服务器端验证逻辑。我想为客户端上的每个输入块提供显示消息的最佳方式。

申请流程:

  1. 客户端表单提交
  2. 节点验证
  3. 重定向到在步骤 1 中呈现表单的视图。

我倾向于使用req.flash() 来显示表单输入消息,但也许有更多面向对象的方法?

【问题讨论】:

  • 这个问题启发我编写了一个带有客户端脚本的节点模块,用于 AJAX 验证。这个想法是在服务器上以类似于猫鼬模式的方式设置表单字段,即使用验证规则。客户端代码将动态生成并负责 jQuery 更改侦听器和表单提交以在提交之前进行验证。然后通过req.body(如果使用正文解析器)以通常的方式访问该表单

标签: node.js express


【解决方案1】:

我有一个可以验证表单数据的验证中间件。如果验证失败,我可以告诉中间件要重新呈现什么表单,并且它将有一个带有字段名称的错误对象和该字段具有的错误数组。

我的表单最终看起来像这样:

include ../mixins/form-helpers

mixin errors()

form(action=url('messages_create'), method='post')

  mixin csrf()

  fieldset

    legend contact

    mixin field('text', 'subject', 'Subject')
    mixin field('textarea', 'message', 'Message')

  .form-actions
    mixin submit('Send')

如果我发布没有主题和消息的表单,我会设置以下对象。

var errors = { subject: ['is required'], message: ['is required'] };

我的错误混合将呈现所有错误,我的字段混合将添加一个错误类,以便我可以为失败的字段添加红色边框。

【讨论】:

【解决方案2】:

查看Validity。它专为将验证和错误附加到表单输入字段并适当地呈现它们而设计。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-13
    • 2013-10-26
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多