Come prendere questo errore NodeJs / Express?

Sto cercando di scrivere un semplice servizio web usando NodeJs. Faccio una chiamata Ajax come di seguito:

$.ajax({ type: "POST", url: "http://localhost:3800", // this json below is invalid and I need to verify it on server side data: '"jhhjh":"ssss"}', contentType: "application/json; charset=utf-8", dataType: "json", success: function(data){ console.log(data); }, failure: function(errMsg) { console.log(errMsg); } }); 

Quindi sul lato server ho questo codice:

 var express = require("express"), app = express(), bodyParser = require('body-parser'); app.use(bodyParser()); app.all('/', function(req, res, next) { // set origin policy etc so cross-domain access wont be an issue res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); // that is the line that gives me error message and cannot return anything back to client res.send("all good"); }); app.post('/', function(req, res) { }); app.listen(process.env.PORT || 3800); 

Tuttavia, poiché json sto cercando di passare al server non è valido, il mio Express si blocca e non posso fare nulla al riguardo. Non riesco a prenderlo o niente. Come posso vedere questo errore?

 Error: invalid json at parse (C:\xampp\htdocs\testing\node_modules\body-parser\index.js:60:15) at C:\xampp\htdocs\testing\node_modules\body-parser\index.js:156:18 at IncomingMessage.onEnd (C:\xampp\htdocs\testing\node_modules\body-parser\node_modules\raw-body\index.js:113:7) at IncomingMessage.g (events.js:180:16) at IncomingMessage.EventEmitter.emit (events.js:92:17) at _stream_readable.js:920:16 at process._tickCallback (node.js:415:13) 

Come posso vedere questo errore? Quello di cui ho bisogno è di rilevare se json passato non è valido e restituire 400 con json message { "someerror":"somemessage"}

prova questo nel server.js:

 var express = require("express"), app = express(), bodyParser = require('body-parser'); app.use(bodyParser()); app.use(function(err,req,res,next){ if(err){ console.log(err); } next(); }); app.all('/', function(req, res, next) { // set origin policy etc so cross-domain access wont be an issue res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); console.log(req.body); next(); }); app.post('/', function(req, res) { if(!Object.keys(req.body)) res.json('all good'); else res.json({ success: false, error: "json invalid" }, 400); }); app.listen(process.env.PORT || 3800);