微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 具有客户端响应的Node.js服务器端表单验证

Express-form是node.js / express的一个非常强大的验证插件.但是,在示例和文档中,所有响应都是服务器端(console.log),这对于开发来说已经足够了,但是告诉用户出了什么问题并不太实际.

目前,我可以想象两种不同的解决方案:

>提交表单并重新定向/渲染表单,并附加req.body和验证消息,将“错误”类添加错误字段.
>使用AJAX提交表单.

我更喜欢选项2,因为我不想在渲染’new’时再次查询数据库.但我必须知道如何将验证结果传递回客户端并将“错误”类添加到输入字段.

有任何想法吗?

解决方法:

我尝试在浏览器的第一个实例中通过javascript验证用户输入,然后在服务器上验证输出的表单中的错误(la rails).现在我正在使用我的一套自定义验证器,所以我不能用快递形式指出你正确的方向.

除了我的自定义正则表达式,我有时使用validator npm包,您还可以使用普通DOM或某些框架在浏览器中使用验证器验证.

编辑:

使用AJAX验证非常简单,您在请求中收到一个对象(如果您使用express.bodyParser()中间件),验证参数,如果有一些错误,您可以在您的响应中指出它.

{
"errors": {
    "foo": "must be a number"
  }
}

和:

for (i in answer.errors) {
  var target = document.getElementById(i);
  target.class = "error";
  // here you can also handle the error description
}

如果你在浏览器端使用框架,有插件或我确信编写一个很简单.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐