Я, похоже, изо всех сил пытаюсь обработать любые ошибки базы данных в моем приложении. У меня есть простой запрос, который обновляет пароль пользователя
// Update Users Password
async function updatePassword(password, id) {
const client = await pool.connect();
const sql = format('UPDATE users SET password = $1 WHERE id = $2');
try {
await pool.query(sql, [password, id]);
} catch (e) {
console.error('Error Occurred', e);
client.release();
}
}
На стороне сервера, у меня есть это в моем route.js
const newPassword = bcrypt.hashSync(req.body.update_password, 10);
try {
await queries.updatePassword(newPassword, req.body.user_id);
res.status(200).send({ result: 'Password Updated Successfully' });
} catch (e) {
res.status(400).send({ result: 'Oops, please try again' });
}
Если в базе данных нет ошибок, это работает, как и ожидалось, но если, например, я предоставляю строку в качестве своего идентификатора (форсирование ошибки), я получаю эту ошибку, как ожидается, на консоль
Error Occurred { error: invalid input syntax for integer: "string"
но все равно res.status(200).send({ result: 'Password Updated Successfully' });
отправлено.
Зарегистрирован как
POST /update_password 200
Как я могу зафиксировать ошибку, так как считал, что она в блоке try / catch?
Спасибо