2017-08-10 9 views
0

私のサーバーがクラッシュする前に空のボディでPOSTリクエストをキャッチしようとしています。私はボディーパーサーを使用している人を見てきましたが、私はMVCモデルを使用していますが、基本的にこの.jsファイルにはappへの参照はありません。Node.jsが空のPOSTリクエストボディをキャッチ

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

私はこれを試すように言われましたが、それでも動作しません。私がconsole.logリソースを使用しているとき、postmanにボディが追加されていなくても "{}"と表示されるので、nullチェックは機能しません。誰かが何かアドバイスがあれば、私はそれを感謝します!

を使用でき
+0

本体が空の場合、 'console.log(resource)'は '{}'を返すべきです。しかし、テストは合格するはずです。つまり、 '!resource'は' false'になります。郵便配達員からあなたはどのような対応をしていますか? – Mekicha

+0

はい、それは起こっていることです。あなたは体が空であるかどうかを確認するより良い方法を知っていますか?郵便局では私は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

関連する問題