Я следую простому шаблону try … catch
для своих запросов SQLite
try {
… run query and get result …
}
catch (error) {
console.log(error);
}
В случае ошибки я получаю хорошую трассировку стека, подобную этой
SqliteError: no such column:
at getData (/Users/punkish/Projects/zenodeo/bin/facets.js:8:25)
at Object.<anonymous> (/Users/punkish/Projects/zenodeo/bin/facets.js:23:1)
at Module._compile (internal/modules/cjs/loader.js:1156:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
at Module.load (internal/modules/cjs/loader.js:1000:32)
at Function.Module._load (internal/modules/cjs/loader.js:899:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
at internal/main/run_main_module.js:18:47
Я написал свой собственный маленький подпрограмма регистрации, так что я могу пометить sh сообщения цветами (используя chalk
) и некоторую дополнительную информацию, которую я нахожу полезной, теперь у меня есть
try {
… run query and get result …
}
catch (error) {
mylogger(error);
}
За исключением того, что теперь я просто получаю следующее
SqliteError: no such column:
И нет, mylogger
не пожирает / отбирает лишние биты. Я добавил следующее к этому
if (typeof error === 'object') {
log('type: object');
log(`error: ${JSON.stringify(error)}`)
}
и получаю
type: object
error: SqliteError: no such column:
Похоже, что стековая трассировка потоковая, и все это не go до mylogger
, В любом случае, как я могу получить все это?