В вашем обработчике ошибок здесь:
if (err) {
console.log("not able to get connection " + err);
res.status(400).send(err);
}
client.query(...)
Вам необходимо добавить возврат, чтобы после отправки статуса ошибки код не продолжал пытаться выполнить client.query()
, потому что client
делаетне имеет допустимого значения в нем, если произошла ошибка. Итак, измените это на:
if (err) {
console.log("not able to get connection " + err);
res.status(400).send(err);
return;
}
client.query(...)
Хотя это имеет меньше последствий, то же самое верно и здесь:
if (err) {
console.log(err);
res.status(400).send(err);
}
res.status(200).send(result.rows);
Где вам нужно добавить возврат:
if (err) {
console.log(err);
res.status(400).send(err);
return;
}
res.status(200).send(result.rows);
Общая проблема в этих двух случаях заключается в том, что, хотя res.status(...).send(...)
отправляет ответ обратно клиенту, он не мешает вашему коду продолжать выполнение после этого, поэтому вам все еще нужно надлежащее управление потоком с помощью if/else
или соответствующий return
для управления потоком выполнения кода, чтобы после ошибки он не сразу выполнял другие части кода, которые вам не нужны.