Express-form是node.js / express的一个非常强大的验证插件。但是,在示例和文档中,所有响应都是服务器端(console.log),这对于开发来说已经足够了,但是告诉用户出了什么问题并不太可行。
目前,我可以想象两种不同的解决方案:
我更喜欢选项2,因为我不想在渲染'new'时再次查询数据库。但我不知道如何将验证结果传递回客户端并将“错误”类添加到输入字段。
有什么想法吗?
答案 0 :(得分:3)
我尝试在浏览器的第一个实例中通过javascript验证用户输入,然后验证服务器输出呈现形式的错误(la rails)。现在我正在使用我的一组自定义验证器,所以我无法用express-form
指向正确的方向。
除了我的自定义正则表达式,我有时使用validator npm包,您还可以使用普通DOM或某些框架在浏览器中使用validator
验证。
修改:
使用AJAX验证非常简单,您在请求中收到一个对象(如果您使用express.bodyParser()
中间件),验证参数,如果有错误,您可以在您的响应中指出它。< / p>
{
"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
}
如果您在浏览器端使用框架,则有插件或我确定编写插件很简单。