Я создаю express сервер для получения запроса (диктовку из 10 элементов) от моего переднего плана реакции и затем сохраняю данные в базе данных. Ниже мой код. Я обнаружил, что conn.query
будет вызывать только запрос последнего элемента, что означает, что один и тот же запрос вызывается 10 раз. Обновлена только 1 запись. Я хочу использовать для l oop, потому что я хочу получить сообщение об ошибке, если какой-либо элемент не был сохранен успешно. Поэтому я не хочу класть все 10 предметов в один UPDATE query
. Как я могу решить эту проблему?
The request data:
{{.....}, {.....}, {.....}, {.....}, {.....}} #10 item
Code:
router.post('/fruit', (req, res) => {
var err_list = [];
for (let r in req.body) {
#for-loop here is used to put each r into query
query = "UPDATE ........."
console.log(query) #output 10 queries with different params
getConnection(function(err, conn){
if (err) {
return res.json({ success: false, error: err })
} else {
conn.query(query, function (err, result, fields) {
conn.release()
console.log(query, err) #output 10 same queries
if (err) {
err_list.push(err);
}
});
}
})
}
if (err_list.length === 0){
return res.json({ success: true });
} else {
return res.json({ success: false, data: err_list });
}
});
connection.js:
const p = mysql.createPool({
"connectionLimit" : 100,
"host": "example.org",
"user": "test",
"password": "test",
"database": "test",
"multipleStatements": true
});
const getConnection = function(callback) {
p.getConnection(function(err, connection) {
callback(err, connection)
})
};
module.exports = getConnection