gpt4 book ai didi

node.js - 这是在 Node 中检查请求主体的有效方法吗?

转载 作者:太空宇宙 更新时间:2023-11-03 22:15:31 26 4
gpt4 key购买 nike

我认为这是非常不言自明的。我有一个注册功能,并且我遵循了几乎所有教程中关于将应用程序逻辑与客户端分离的建议。那么,这个服务器代码是处理确保所有需要的字段都存在的好方法吗?为什么或为什么不?

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 schemas验证请求主体,因为它允许您以声明方式强制执行您的要求。您还可以编写通用中间件函数来保持代码整洁。 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();
});

关于node.js - 这是在 Node 中检查请求主体的有效方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30129782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com