Я новичок в node и столкнулся с проблемой, которую просто не могу понять. Я использую node / express и mysql для возврата результатов запроса.
Если я console.log первый элемент в массиве результатов, он правильно регистрирует объект. Затем я просматриваю результаты и сохраняю в console.log некоторые данные.
После правильной регистрации, скрипт, кажется, go возвращается и записывает этот элемент исходного массива как «undefined»
Вот код:
app.get('/:make', async (req, res) => {
pool.query(sql.getAll, [req.params.make], function (err, result) {
if (err) throw new Error(err);
// Do something with result.
console.log(result[0]);
result.forEach((row) => {
console.log(row.style);
});
res.send('WTF!');
});
});
и вот что я получаю в терминале:
RowDataPacket {
id: 6103,
year: '2020',
make: 'Ram',
model: '1500 Classic',
style: 'Truck',
}
Truck
Truck
Truck
undefined
Может ли кто-нибудь пролить свет на то, что происходит?
Когда я заменяю console.log (result [0]) на console.log ( результат [0], результат [1], результат [2], результат [3]), я получаю следующее:
RowDataPacket {
id: 6103,
year: '2020',
make: 'Ram',
model: '1500 Classic',
style: 'Truck'
} RowDataPacket {
id: 6103,
year: '2020',
make: 'Ram',
model: '1500 Classic',
style: 'Truck'
} RowDataPacket {
id: 6121,
year: '2020',
make: 'Ram',
model: '1500 Classic',
style: 'Truck'
} undefined
Truck
Truck
Truck
undefined undefined undefined undefined