2014-12-17 13 views
6

sto colpendo un servizio web sul nodo con i seguenti dati,come gestire gli errori del corpo-parser in nodejs espressi

miei dati richiesta è:

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

e ottenere seguente errore:

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) 

Ho intenzionalmente usato la doppia virgola per ottenere questo errore. Voglio sapere come gestire questo errore e mostrare all'utente un errore in un formato corretto

Grazie

+4

L'ultimo callback nel tuo stack middleware dovrebbe essere il gestore degli errori, che rileverà questi errori. [Docs] (http://expressjs.com/guide/error-handling.html) –

+4

Grazie. Per quelli che non capiscono. uso, 'app.use (function (err, req, res, prossimi) {// logiche });' dopo 'app.use (bodyParser());' – Rahul

+0

si potrebbe rendere una risposta anche se – Sindis

risposta

4

Dal Docs -

Si definiscono di gestione degli errori middleware scorso, dopo altri app.use() e percorsi chiamate; ad esempio:

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!'); 

}); 
Problemi correlati