2014-12-17 9 views
6

Ich bin die Kollision mit einem Web-Dienst auf Knoten mit folgenden Daten zu handhaben,wie Körper-Parser-Fehler in Express NodeJS

MY Anforderungsdaten:

{ 
"first_name":"surinder",, 
"last_name":"rawat", 
"email":"[email protected]", 
"phone":"1234567890", 
"password":"surinder", 
"user_type":"H", 
"device_type":"A" 
} 

und immer folgende Fehlermeldung:

Connect 
400 SyntaxError: Unexpected token , 
    at Object.parse (native) 
    at parse (/home/surinder/workspace/HappyHakka/node_modules/body-parser/lib/typs 
    /json.js:76:17) 
    at /home/surinder/workspace/HappyHakka/node_modules/body-parser/lib/read.js:98:18 
    at IncomingMessage.onEnd (/home/surinder/workspace/HappyHakka/node_modules/body-parser 
    /node_modules/raw-body/index.js:136:7) 
    at IncomingMessage.g (events.js:180:16) 
    at IncomingMessage.emit (events.js:92:17) 
    at _stream_readable.js:943:16 
    at process._tickCallback (node.js:419:13) 

Ich verwendete absichtlich Doppel Komma, um diesen Fehler zu erhalten. Ich möchte wissen, wie man diese Fehler zu handhaben und in einem geeigneten Format

Dank

+4

Der letzte Callback in Ihrem Middleware-Stack sollte Ihr Error-Handler sein, der diese Fehler abfängt. [Docs] (http://expressjs.com/guide/error-handling.html) –

+4

Danke das hat funktioniert. Für diejenigen, die es nicht verstehen. Gebrauch 'app.use (function (err, erf, res, next) { // Logik });' nach 'app.use (bodyParser());' – Rahul

+0

Man könnte es eine Antwort machen obwohl – Sindis

Antwort

4

Vom Docs Benutzer einen Fehler zeigen -

Sie definieren Fehlerbehandlungsmiddleware zuletzt, nach anderen app.use() und leiten Anrufe; Beispiel:

var bodyParser = require('body-parser'); 
var methodOverride = require('method-override'); 

app.use(bodyParser.urlencoded({ 
    extended: true 
})); 
app.use(bodyParser.json()); 
app.use(methodOverride()); 
app.use(function(err, req, res, next) { 

    // error handling logic 
    console.error(err.stack); 
    res.status(500).send('Something broke!'); 

});