У меня есть функция в узле, который выглядит следующим образом:Узел с Async/Await - Как получить конкретную строку, где произошла ошибка?
async someFlow() {
try {
func1();
func2();
await getSomeData();
func3();
}
catch (e) {
sentryIo.captureException(e);
}
}
и getSomeData() выглядит следующим образом:
async getSomeData() {
//... some code
await pgPromise.one('select * from some bad syntax') // line 351!!
//... some code
}
Когда pgPromise (которое является LIB для общения с PostgreSQL) выдает ошибку , трассировка стека ошибок содержит только номера внутренних строк из pgPromise lib, в которых произошла ошибка.
Так что, когда ошибка улавливается и регистрируется в службе Sentry.io, я не могу точно знать точную строку ошибки.
Как я могу сделать так, что ошибка будет conatin трассировки стека, который говорит мне ошибка случилось в строке 351
Можете ли вы показать, что вы сейчас на самом деле получаете? По умолчанию вы получаете последние 10 строк стека ошибок. Если вам нужно больше, вы можете попытаться увеличить количество строк так же, как это 'Error.stackTraceLimit = 1000;' или запустить свое приложение, как этот 'node --stack-trace-limit = 1000 main-file.js' – Molda
С 'pg-prom' вы можете установить его для использования« bluebird »в качестве библиотеки обещаний, которая, в свою очередь, поддерживает трассировки с длинными стеками, которые вы можете включить и увидеть полные стеки. –
@ vitaly-t Спасибо! настройка длинных трасс работает! вы можете ответить, чтобы я мог отметить это. –