Принципы обработки ошибок для приложений Node.js + Express.js?

Похоже, что отчеты об ошибках / обработка в приложениях Node.js + Express.js выполняется иначе, чем в других фреймворках. Правильно ли я понимаю, что это работает следующим образом?

A) Обнаружение ошибок, получая их в качестве параметров для ваших функций обратного вызова. Например:

doSomethingAndRunCallback(function(err) { 
    if(err) { … }
});

B) Сообщайте об ошибках в MIDDLEWARE, вызывая next (err). Пример:

handleRequest(req, res, next) {
    // An error occurs…
    next(err);
}

C) Сообщите об ошибках в МАРШРУТАХ, выдав ошибку. Пример:

app.get('/home', function(req, res) {
    // An error occurs
    throw err;
});

D) Обработка ошибок путем настройки собственного обработчика ошибок с помощью app.error () или использования универсального обработчика ошибок Connect. Пример:

app.error(function(err, req, res, next) {
    console.error(err);
    res.send('Fail Whale, yo.');
});

Являются ли эти четыре принципа основой для всей обработки ошибок и создания отчетов в приложениях Node.js + Express.js?

176
задан Peter Mortensen 4 May 2015 в 10:26
поделиться