如何在单独的路由中捕获响应错误/消息?

我只是想捕获中间件函数的响应错误,如果我写代码如下所示:

var express = require('express'); var expressValidator = require('express-validator'); var app = express(); var bodyParser = require('body-parser'); var router = require('./routes'); //monk.mongoList(); app.use(bodyParser.urlencoded({extented:true})); app.use(bodyParser.json()); app.use(expressValidator([])); var port = process.env.PORT || 8978; router.get('/',function(req,res,next) { var error = Error('Article is not found'); next(error.message); return res.send("Hello World!"); }); app.use(function(err,req,res,next) { console.log(err + "TET"); }) app.listen(port); 

但是我想分开下面的代码:

 app.use(function(err,req,res,next) { console.log(err + "TET"); }) 

并使用它如下:

app.js

 var express = require('express'); var expressValidator = require('express-validator'); var app = express(); var bodyParser = require('body-parser'); var router = require('./routes'); //monk.mongoList(); app.use(bodyParser.urlencoded({extented:true})); app.use(bodyParser.json()); app.use(expressValidator([])); var port = process.env.PORT || 8978; var test = require('./util/test') app.use(test.logger); app.use('/',router); app.listen(port); console.log('test node API ' + port ); 

UTIL / test.js

 module.exports.logger = function (err, req, res, next) { console.log('LOGGED') next() } 

/routes/index.js 编辑:我只是编辑/routes/index.js文件,使其更简单

 var express = require('express'); var router = express.Router(); var url = require('url'); router.get('/api', function(req, res, next) { var err = "this is error"; var error = Error (err) var data = { data: "Succuss"} if (err) { next(error.message) res.json({message:err}) }else { res.json(data); } }); module.exports = router; 

当添加上面的代码时,控制台中没有任何东西出现。