День добрый, коллеги.
Вот с такой маршрутизацией всё понятно —
app.get('/', middleWare, function (req, res) {
res.render('index', { s: 'hello' });
});
, где middleWare может быть массивом вложенных ф-ий, у каждой из которых есть вызов next(). И если вызывать next без параметров, то управление передаётся дальше (а данном случае попадём в res.render), иначе…
Вот тут-то и вопрос, а что иначе-то?
По дефолту текст ошибки прям в виде текста выдаётся на консоль и пользователю, посему я делал такие «обёртки» вида
'someMiddlewareFunction': function (errfunc) {
return function (req, res, next) {
// .. code
if (someFlag) {
errfunc(global.ERR_AUTH_NOT_LOGGED_IN, req, res);
}
else {
next();
}
// .. code
}
Ну а потом просто передавал в эту ф-ию другую ф-ию, которая и рендерила мне красивую страничку с номером 500 и описанием ошибки.
Но насколько такой подход правильный?
И ещё — куда вообще передаётся управление при вызове next('ERROR') в таком контексте? —
app.get( '/users/:id([0-9]+)', function (req, res, next) {
if (id > 10) {
// .. some code
}
else {
next('ERROR');
}
});
И каким образом подобные ошибки ловить?
Спасибо.