2017-08-10 87 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