Node.js服务器端的表单validation与客户端响应

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

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

  1. 提交表单,并重新返回/渲染表单req.body和validation信息附加到“错误”类错误的领域。
  2. 使用AJAX提交表单。

我更喜欢选项2,因为我不想再次查询数据库时,渲染“新”。 但是我必须知道如何将validation结果传递回客户端,并向input字段添加“错误”类。

有任何想法吗?

Solutions Collecting From Web of "Node.js服务器端的表单validation与客户端响应"

我尝试在浏览器中首先通过javascriptvalidation用户input,然后在渲染forms(la rails)上输出错误的服务器上进行validation。 现在我正在使用我自定义的validation器集合,所以我不能用express-form指向正确的方向。

除了我自定义的正则expression式之外,我有时还会使用validation器 npm包,还可以在浏览器中使用纯粹的DOM或者一些框架来使用validatorvalidation。

编辑

使用AJAXvalidation非常简单,您可以在请求中接收对象(如果使用express.bodyParser()中间件),validation参数,如果出现一些错误,您可以在响应中指向它。

 { "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 } 

如果您在浏览器端使用框架,则有插件,或者我确定编写一个框架非常简单。