NodeJS работает асинхронно, что означает, что когда вы вызываете res.json(getAll.all());
, res.json выполняется до завершения выполнения запроса.
Правильный способ сделать это:
1. Ваша функция getAll должнаполучить обратный вызов извне (как и в случае с функцией mysql)
2. функция маршрутизатора должна передать обратный вызов getAll и передать результат в ответ
getAll.all = (callback) => {
var userGetSql = 'SELECT * FROM product';
mysql.query(userGetSql, callback);
}
router.get('/product', (req,res,next) => {
getAll.all((result, err) => {
if (err) {
return res.json('some error message');
}
return res.json(result);
});
});