Я пытаюсь получить ответ из базы данных, когда использую tx.batch.
Спасибо.
- 1) запросите базу данных для уже существующих записей, которые необходимо обновить
- 2) используя результаты из 1, сделайте еще один пакетный вызов БД для создания или обновления записей
- 3) ответить со статусом 200 на мой API с созданными и обновленными записями
Пакетные вызовы работают, проверенные записи вставляются и/или обновляются в БД.
db.tx(t1 => {
let queryCheck = [];
reqData.forEach(obj => {
for (let key in obj) {
obj[key].resovledURLs.forEach(data => {
queryCheck.push(
t1.any(
`SELECT * FROM testDB WHERE url='${key}' AND testurl='${data}';`
)
);
});
}
});
return t1
.batch(queryCheck)
.then(data => {
return t1.tx(t2 => {
let t2QueryBatch = [];
// got rid of queryBatchOfEverything()
// uses data from t1.batch(queryCheck) to make joinedArray
let joinedArray = updateArray.concat(createArray);
joinedArray.forEach(obj => {
if (obj.queryType === "Update") {
t2QueryBatch.push(
t2.none(
`UPDATE testDB SET count = count + 1 WHERE url='${
obj.url
}' AND errorurl='${obj.testurl}';`
)
);
} else {
t2QueryBatch.push(
t2.none(
`INSERT INTO testDB (url, testurl) VALUES ('${
obj.url
}', '${obj.testurl}');`
)
);
}
});
return t2.batch(t2QueryBatch);
});
})
.then(data => {
console.log(data);
});
});