如何在单独的路由中捕获响应错误/消息?
我只是想捕获中间件函数的响应错误,如果我写代码如下所示:
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;
当添加上面的代码时,控制台中没有任何东西出现。