У меня есть пост-маршрут, который получает массив строк из req.body.Затем он берет массив и несколько раз запрашивает мою локальную базу данных MySQL и извлекает некоторые данные, которые я хочу отправить обратно клиенту (реагирует), а затем сохраняет их в состоянии.
Проблема, с которой я столкнулся,хранение моих данных в массиве для успешной отправки с помощью метода res.send или res.json.
Я полагаю, что это может быть проблема, связанная с обработкой области другим способом, но я нахожусь в тупике.
Я пытался переместить расположение исходного объявления переменной массива, нов лучшем случае с res.send(aisleArr)
я получаю только пустой массив.
Я также пытался не объявлять aisleArr перед методом push, думая, что он создаст глобальный объект aisleArr, но безрезультатно.
router.post('/complete', (req, res) => {
const list = req.body;
let aisleArr = [];
list.map(item =>
db.item.findAll({
where: {'$item.name$': item}
})
.then(data => data.map( data =>
db.aisle.findAll({
where: {'$aisle.id$': data.dataValues.aisleId, '$aisle.storeId$': 2}
}).then( result => {
if(result[0]){
aisleArr.push(result[0].name)
}else{
console.log('no match')}})
)
)
)
res.send(aisleArr)
});
В клиентской консоли только пустой массивполучено по окончании отправки.