2017-08-10 86 views
0

我试图捕捉一个空的正文POST请求,然后它导致我的服务器崩溃。我见过使用bodyparser的人,但我使用的是MVC模型,基本上我没有在这个.js文件中引用应用程序。Node.js捕获空的POST请求正文

var resource = req.body; 
if(!resource) return res.status(400).send("Your request is missing details."); 

我被告知尝试这样的事情,但它仍然无法正常工作。当我的console.log资源显示为“{}”时,即使在邮递员中没有添加正文,所以空检查不起作用。如果有人有任何建议,我将不胜感激!

+0

'console.log(resource)'应该在主体为空时返回'{}'。但测试仍然应该通过。也就是说,'!resource'将是'false'。你从邮递员那里得到什么回应? – Mekicha

+0

是的,这就是发生了什么。你知道更好的方法来检查身体是否空了吗?在postman中,我得到了一个200,但它后来继续让我的服务器崩溃,并在“设置后无法更改响应头”。我认为原因是我使用的API抛出错误,但我已经发送了状态码200. – Pard

+0

https://stackoverflow.com/questions/42921727/how-to-check-req-body-empty -or-not-in-node-express/42921907 –

回答

0

您可以使用: if(Object.keys(req.body).length === 0)

Object.getOwnPropertyNames(req.body).length == 0

然后你的逻辑来响应用户。

+0

非常感谢! – Pard