Похоже, что сообщение об ошибках/обработка ошибок выполняется по-разному в приложениях Node.js + Express.js по сравнению с другими платформами. Правильно ли я понимаю, что он работает следующим образом?
A) Обнаружение ошибок путем их приема в качестве параметров функций обратного вызова. Например:
doSomethingAndRunCallback(function(err) {
if(err) { … }
});
B) Сообщить об ошибках в MIDDLEWARE, вызвав следующую (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?