我在节点js中传递帖子数据时遇到问题。我已经知道这是如何工作的,但我不知道如何验证帖子数据中的字段。
示例:
如果我传递了json {"userInfo":"myusername"}
,我的服务器会接受它。
但是如果我传递一个带有无效格式的json,就像这个{"usersInfo":"myusername"}
我的服务器崩溃了。我的目标是在收到数据之前我需要检查字段是否有效,如果不是,我会发送400错误请求状态代码res.writeHead(400);
app.post('/api/adduser', function(req, res) {
var userInfo = req.body.userInfo;
//code goes here
});
有什么方法可以做到这一点吗?谢谢你们。
答案 0 :(得分:1)
至少你应该检查是否定义了req.body.userInfo。
app.post('/api/adduser', function(req, res) {
if( typeof req.body.userInfo === "undefined" ) {
// error code here
} else {
// add-user code goes here
}
});
我建议不要使用userInfo == undefined
,因为你只是为了抓错而创建一个破解。不要去那里。
更强大的解决方案是使用验证模块。 node.js有一些不同的验证器。你选择的将取决于你的口味和你正在使用的框架(表达,解决等)。验证器确实超出了原始问题的范围,但您知道,仅供参考。
答案 1 :(得分:0)
如果您的密钥名称不同,您可以检查它是否未定义:
if(userInfo == undefined){
res.writeHead(400)
}