Express 3 error middleware não sendo chamado

Eu estou tentando configurar o tratamento de erros para o meu aplicativo expresso e executando o seguinte problema.

Eu defini um middleware de erro e o adiciono como o último middleware:

// error handler
app.use(function(err, req, res, next) {

    console.log('JUST TESTING. ERROR HANLDER HAS BEEN CALLED...');
    next(err);
});

Agora eu esperaria que esse middleware fosse chamado sempre que ocorresse um erro:

app.get('/datenschutz', function(req, res, next){
        return next(new Error('Just testing')); // handle everything here
    });

No entanto, meu middleware nunca é chamado! O navegador não exibe o rastreamento de pilha no entanto. Isto parece que há outro middleware que está pegando esse erro e o processa antes que eu possa fazer algo sobre isso.

O problema é que não tenho idéia de onde esse middleware poderia ser definido, pois tenho uma configuração muito simples:

// setup ssl for local testing
var
    app = express();

app.
    use(express.static(__dirname + '/public')).
    use(express.bodyParser()).
    use(express.cookieParser());

Por que meu erro ao lidar com o middleware não é chamado? Onde está ocorrendo esse tratamento de erro 'padrão'?

Obrigado!

* EDIT * Eu vejo que o middleware está de fato funcionando. No entanto, este é o caso se eu chamá-lo de outra função de middleware. No entanto, ele não está sendo chamado se o erro ocorrer dentro de uma função definida como uma rota expressa (GET, POST, etc.). Isto é muito estranho. Se eu adicionar meu middleware de erro aos retornos de chamada de rota, ele funcionará:

app.get('/testError', function(req, res, next){
        return next(new Error('Just testing')); // handle everything here
    }, function(err,req,res,next) {
        console.log('This error handler is called!!');
        return next();
    });

* EDIT 2 - ENCONTRADA ACEITÁVEL ENCONTRADA ** Estou surpreso que tenha que ser feito dessa maneira. Como eu tinha lido muitas entradas / perguntas sobre o tratamento de erros em expresso e nunca encontrei essa possibilidade mencionada. No entanto, parece que, se ocorrer um erro dentro de um roteador de retorno de chamada regular, os manipuladores de middleware não o receberão. Você precisará definir um manipulador de erro no nível da rota.

app.all('*', function(err,req,res,next) {
        console.log('This is a global error handler at route level....');
        return next(err);
    });

questionAnswers(3)

yourAnswerToTheQuestion