В настоящее время у меня есть Express, выполняющий вызов для моей базы данных Teradata, и он работает / работает отлично, когда все работает.
Однако, если мой вызов Teradata возвращает ошибку, я вижу вывод в окне консоли, но не могу установить обработчик ошибок.
Я понимаю, что это должно быть очень просто, но я очень плохо знаком с Express. Любая помощь будет оценена.
Код экспресс-вызова:
router.post('/sp_run', function (req, res) {
var sql = "CALL DB.STORED_PROC1(1,P_ERROR_CODE,P_MSG);";
console.log(sql);
return teradata.read(sql)
.then((x) => {
console.log(x);
res.send(x);
});
});
Информация об ошибке, которую я вижу в своей консоли.
CALL DB.STORED_PROC1(1,P_ERROR_CODE,P_MSG);
express_1 | 2019-6-27 21:07:10 - error: [Teradata] Unable to execute query: CALL DB.STORED_PROC1(1,P_ERROR_CODE,P_MSG);
express_1 | Unhandled rejection Error: Error running instance method
express_1 | java.sql.SQLException: [Teradata Database] [TeraJDBC 16.20.00.10] [Error 7627] [SQLState HY000] STORED_PROC1:SELECT-INTO returned more than one row.
Конец игры - в случае возникновения ошибки я хочу отправить электронное письмо и отправить ответный ответ, чтобы мой клиент не ждал вечно.