Node.js客户端响应的服务器端表单验证
问题描述:
Express-form是一个非常强大的node.js/express验证插件。但是,在示例和文档中,所有的响应都是服务器端(console.log),这对于开发来说已经足够了,但不太实际的是告诉用户出了什么问题。Node.js客户端响应的服务器端表单验证
此刻,我能想象两种不同的解决方案:
- 提交表单和重定向回/附带添加“错误的领域error'类req.body和验证消息再次呈现形式。
- 使用AJAX提交表单。
我更喜欢选项2,因为我不想在渲染'新'时再次查询数据库。但我必须了解如何将验证结果传递回客户端,并将“错误”类添加到输入字段。
任何想法?
答
我尝试在浏览器中通过javascript验证用户输入的第一个实例,然后验证输出呈现形式(la rails)的服务器输出错误。现在我正在使用我的自定义验证器集合,因此我无法用express-form
将您指向正确的方向。
随着我的自定义正则表达式我有时使用validator npm包,您还可以在浏览器中使用plain DOM或某种框架使用validator
验证。
编辑:
与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
}
如果您使用的浏览器端的框架,有插件或我敢肯定,这是简单的写一个。