Ошибка обработчика

Я пытаюсь обработать ошибку с помощью обработчика ошибок. Это не работает, почему? Если я использую пользовательский обработчик ошибок, все будет в порядке. Вы можете мне помочь? Я новичок в 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 ответа

Ваш обработчик ошибок в порядке.

Вместо того, чтобы использовать setTimeOut, throw ошибка и ваш обработчик ошибок ее поймает.

Думаю, вы понимаете меня, мой обработчик ошибок хорош, я знаю!! и это отображение "ERRORformMyCustomErrorFunction";p(это идеально:P), но.... я спрашиваю об обработчике ошибок (express middleware) (только), почему не отображается на консоли "ERRORfromerrorHandler!!!!!" У меня не работает только то, что между /........../

Другие вопросы по тегам