这是一个有效的方法来检查Node中的请求体?

我觉得很自我解释。 我有一个注册function,我已经遵循了几乎所有教程的build议,从客户端解耦应用程序逻辑。 那么,这个服务器代码是处理确保所有需要的字段在那里的好方法吗? 为什么或者为什么不?

PS:_.contains来自lodash图书馆。

function checkBody(body, callback){ var required = ['username', 'password', 'email']; for (x in required){ if (!_.contains(body, required[x])){ callback(null, false); } } callback(null, true); } 

我喜欢使用JSON模式来validation请求体,因为它可以让你声明性地执行你的需求。 你也可以编写一个通用的中间件function来保持你的代码的清洁。 tv4是一个很好的库来完成这个任务。 这是一个小例子:

 var tv4 = require('tv4'); var enforceSchema = function(schema) { return function(req, res, next) { if (!tv4.validate(req.body, schema)) { res.status(400).end(); } else { next(); } }; }; var loginSchema = { properties: { username: { type: 'string', minLength: 1 }, email: { type: 'string', minLength: 1 }, password: { type: 'string', minLength: 1 } }, required: ['username', 'email', 'password'] }; app.post('/signup', enforceSchema(loginSchema), function(req, res, next) { res.end(); });