2017-08-10 2 views
0

Ich versuche, eine POST-Anfrage mit einem leeren Körper zu fangen, bevor es verursacht, dass mein Server abstürzt. Ich habe Leute gesehen, die bodyparser verwenden, aber ich benutze das MVC-Modell und im Grunde habe ich keine Referenzen auf die App in dieser .js-Datei.Node.js fangen leere POST-Anfrage Körper

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

Ich wurde aufgefordert, so etwas zu versuchen, aber es funktioniert immer noch nicht. Wenn ich die Ressource console.log als "{}" anzeige, auch wenn im Postman kein Body hinzugefügt wurde, funktioniert der Null-Check nicht. Wenn jemand einen Rat hat, würde ich es schätzen!

+0

'console.log (Ressource)' sollte '{}' zurückgeben, wenn der Körper leer ist. Aber der Test sollte noch bestehen. Das heißt, '! Resource' wird' false' sein. Welche Antwort bekommst du vom Postboten? – Mekicha

+0

Ja, das ist was passiert. Kennen Sie einen besseren Weg zu überprüfen, ob der Körper leer ist? Im Postboten bekomme ich eine 200, aber es geht weiter, um meinen Server später mit einem "Antwort-Header kann nicht geändert werden, nachdem sie festgelegt sind" zu crashen. Ich denke der Grund ist, dass eine API, die ich verwende, einen Fehler sendet, aber ich habe bereits den Statuscode 200 gesendet. – Pard

+0

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

Antwort

0

können Sie verwenden: if(Object.keys(req.body).length === 0)

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

Und dann Ihre Logik für den Benutzer zu reagieren.

+0

Vielen Dank! – Pard

Verwandte Themen