如何在 express.js 4 的路由器的 errorHandler 中捕获 bodyParser 错误?
示例代码:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
// use bodyParser.json()
app.use(bodyParser.json());
// setup route /test
var testRouter = express.Router();
testRouter.post('/', function(req, res, next) {
next(new Error('not implemented'));
});
testRouter.use('/', function(err, req, res, next) {
res.send('testRouter error: ' + err.message);
});
app.use('/test', testRouter);
// default error handler
app.use(function(err, req, res, next) {
res.send('default error handler: ' + err.message);
});
module.exports = app;
使用空正文发送POST
请求将返回。此消息来自 中定义的错误处理程序,这是我期望发生的。/test
testRouter error: not implemented
testRouter
但是,使用格式错误的 json 正文发送POST
请求/test
将返回default error handler: [bodyParser error]
. 此消息来自默认错误处理程序。
我希望 中的错误处理程序处理testRouter
对/test
. 我怎样才能做到这一点?