Я пытаюсь вставить несколько строк в PostgreSQL, используя узел pg. Я использую транзакции, но мой запрос выполняется после ответа. Я попытался выполнить асинхронное ожидание с моей функцией, но она не работает
Это моя функция
addPersons = async (req, res) => {
try {
await db.query("BEGIN");
req.body.forEach((person, index) => {
if (person.id) {
try {
await db.query("ROLLBACK");
} catch (error) {
console.error("Error rolling back client", err.stack);
}
return res
.status(Error_code.IdNotFound.code)
.send(Error_code.IdNotFound);
}
const query = `update person set
name = ${person.name},
where id = '${
person.id
}'`;
try {
await db.query(query);
} catch (error) {
try {
await db.query("ROLLBACK");
} catch (error) {
console.error("Error rolling back client", err.stack);
}
return res.status(500).send(err);
}
})
await db.query("COMMIT");
res.status(Error_code.Successfull.code).send(Error_code.Successfull);
} catch (error) {
try {
db.query("ROLLBACK");
} catch (error) {
console.error("Error rolling back client", err.stack);
}
return res
.status(Error_code.UnableToBeginTransaction.code)
.send(Error_code.UnableToBeginTransaction);
}
}
Я также пытался вызвать эту функцию из другой функции и использовать foreach для этой функции, но когда всякий раз, когда код обнаруживает ожидание или обратный вызов во второй функции, он не ждет и не возвращается к первой функции.
Как я могу запустить этот код, чтобы добавить свои данные в PostgreSQL с транзакциями
Спасибо