2013-09-13 2 views
0

В экспресс-приложение, я исследовал, что мы можем справиться ошибку, используя что-то вроде этого:Node.js Экспресс ошибки ручки функционируют

// app.js 
app.use(function (error, req, res, next) { 
    // Handle errors 
}); 

мои вопросы:

  1. я прав, что эта функция будет можно называть только если есть ошибка? Я не мог заставить эту функцию вызывать, если нет ошибки. Я что-то пропустил?
  2. есть ли какой-нибудь случай, что эта функция будет вызвана даже там no ошибка?

Благодаря

ответ

2

Да. Среднее программное обеспечение с arity 4 (то есть: err, req, res, next) является обработчиком ошибок и будет вызываться при возникновении ошибки.

Ошибки могут быть неперехваченными исключениями в вашем другом промежуточном программном обеспечении или явно ошибки, которые вы поднимаете, когда вы вызываете next(err) вместо next() без аргументов.

Будут случаи, когда эти обработчики не будут вызваны. Например: ошибки, которые происходят в асинхронных блоках.

+0

очень полезная информация и быстрый ответ. Оценил @Nitzan Shaked. +1 –

Смежные вопросы