Запрос Node mysql возвращает неопределенную переменную после правильной первоначальной регистрации. - PullRequest
0 голосов
/ 07 мая 2020

Я новичок в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...