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] 举报,一经查实,本站将立刻删除。