errorhandler表示无效

时间:2015-06-29 04:44:33

标签: node.js express error-handling custom-error-handling

我尝试使用错误处理程序中间件处理错误但是它不起作用,为什么?如果我使用自定义handleerror一切都好。你能帮助我吗?我是node.js的新手,我很难开始嘿。

var express = require('express'),
timeout = require('connect-timeout'),
errorhandler = require('errorhandler');
var app = express();
//app.use(errorhandler({log:errorFunction}))

app.use(express.static('public'));
app.set('port', process.env.PORT || 3000);
app.use(timeout('2s'))


app.get('/slow-request',function(req,res,next){

setTimeout(function(){

    if(req.timedout){return false}
    console.log("Time is ok, i can use next()")
    },3000)

})

/*
function errorFunction(err,str,req)
{
    console.log("ERRORfromerrorHandler!!!!!");//never called? why?
}
*/

app.use(function(err, req, res, next) {
res.status(err.status || 500);
console.log("ERRORfromMyCustomErrorFunction!!!!!")// it is ok
});


var server = app.listen(app.get('port'), function() {
  console.log('Express server listening on port ' + server.address().port);
});

2 个答案:

答案 0 :(得分:0)

你的错误处理程序没问题。

而不是使用setTimeOutthrow错误,您的错误处理程序将捕获它。

答案 1 :(得分:0)

认为你了解我,我的错误处理程序很好,我知道!!它显示“ERRORformMyCustomErrorFunction”; p(它完美:P)但....我问关于errorhandler(表达中间件)(仅)为什么不在控制台上显示“ERRORfromerrorHandler !!!!!”它只对我有用,在/ .......... /

之间