Size: a a a

Node.js — русскоговорящее сообщество

2019 October 12

AL

Alex L in Node.js — русскоговорящее сообщество
Привет, можно ли в Express сделать глобальный обработчик ошибок?
В index.js у меня есть такое
   // error handler
   server.use(function(err, req, res, next) {
       res.status(err.status || 500);
       res.render('error', {
           message: err.message,
           error: {}
       });
   });
   server.use(apiRouter);


но это не отлавливает ошибку Unhandled rejection Error: ER_DATA_TOO_LONG: Data too long for column 'ххххххх' at row 1 которая выбивается в одном из роутов. Как отловить все подобные?
источник

MF

Max Frei in Node.js — русскоговорящее сообщество
process.on('uncaughtException', error => {});
process.on('unhandledRejection', error => {})); - for Promise
источник

Н

Никита in Node.js — русскоговорящее сообщество
process.on('unhandledRejection', error => {
 
// Will print "unhandledRejection err is not defined"
 console.log('unhandledRejection', error.message);
});
источник

ВК

Виктор Крафтер in Node.js — русскоговорящее сообщество
а не лучше сразу заюзать типо такого? https://www.npmjs.com/package/express-async-errors
источник

AL

Alex L in Node.js — русскоговорящее сообщество
Виктор Крафтер
а не лучше сразу заюзать типо такого? https://www.npmjs.com/package/express-async-errors
Да я нашел уже пакет exceptional.js, но вопрос был о том, возможно ли обработать исключения в принципе, без установки доп. пакетов.
источник

AL

Alex L in Node.js — русскоговорящее сообщество
Никита
process.on('unhandledRejection', error => {
 
// Will print "unhandledRejection err is not defined"
 console.log('unhandledRejection', error.message);
});
А можно это сделать в рамках express'a, чтоб error передать в response?
источник

JD

John Doe in Node.js — русскоговорящее сообщество
Kool Guy
пасспорт под экспресс заточен, так что нет
можно всё это реализовать и без паспорта
он вроде не под экспресс, а под connected middleware
источник

JD

John Doe in Node.js — русскоговорящее сообщество
Alex L
Привет, можно ли в Express сделать глобальный обработчик ошибок?
В index.js у меня есть такое
   // error handler
   server.use(function(err, req, res, next) {
       res.status(err.status || 500);
       res.render('error', {
           message: err.message,
           error: {}
       });
   });
   server.use(apiRouter);


но это не отлавливает ошибку Unhandled rejection Error: ER_DATA_TOO_LONG: Data too long for column 'ххххххх' at row 1 которая выбивается в одном из роутов. Как отловить все подобные?
промис где-то профукал, поэтому и ошибка. Дело не в экспрессе
источник

AL

Alex L in Node.js — русскоговорящее сообщество
John Doe
промис где-то профукал, поэтому и ошибка. Дело не в экспрессе
Не-не, я знаю почему эта ошибка и как её исправить, мне нужно просто глобальный перехватчик, чтоб можно было отправить данные клиенту
источник

AL

Alex L in Node.js — русскоговорящее сообщество
В Laravel, к примеру, есть Exception\Handler, который на глобальном уровне обрабатывает все эксепшны и позволяет в т.ч. и для каждой отдельной ошибки свой ответ сформировать
источник

JD

John Doe in Node.js — русскоговорящее сообщество
Alex L
Не-не, я знаю почему эта ошибка и как её исправить, мне нужно просто глобальный перехватчик, чтоб можно было отправить данные клиенту
catch(next) почему не устраивает?
источник

AL

Alex L in Node.js — русскоговорящее сообщество
John Doe
catch(next) почему не устраивает?
А можно подробнее?
источник

А

Андрей in Node.js — русскоговорящее сообщество
Где лучше купить домен под магазин?
источник

JD

John Doe in Node.js — русскоговорящее сообщество
Alex L
А можно подробнее?
источник

AL

Alex L in Node.js — русскоговорящее сообщество
Это видел, вон выше же написал что не перехватывает.
источник

JD

John Doe in Node.js — русскоговорящее сообщество
с промисами просто .catch(next)
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
Андрей
Где лучше купить домен под магазин?
Где угодно - домен это всего лишь имя...
источник

JD

John Doe in Node.js — русскоговорящее сообщество
Alex L
Это видел, вон выше же написал что не перехватывает.
у тебя же catch на промисе нет
источник

А

Андрей in Node.js — русскоговорящее сообщество
Так ценники разные.
источник

AL

Alex L in Node.js — русскоговорящее сообщество
А, там вопрос вобще другой
источник