Как сказал @Chris, проблема в том, что вы не ожидаете выполнения запроса.Я сам не фанат Обещаний (если вы не можете использовать await/async
), поэтому я покажу вам, как это сделать с обычными обратными вызовами.
app.post('/check',(req,res)=>{
do_sql_query((err, results) => {
if(err) return res.status(500).send("Something went wrong");
return res.send(results);
});
});
do_sql_query = (callback) = > {
mysql_query_function('SELECT * FROM...`, (err, results) =>{
// you don't show how you're defining your mysql_query_function, but most node is error-first callback
if (err) return callback(err);
return callback(null, results);
}
}
Обратите внимание, что каждый раз, когда вы делаете асинхронный вызов, вы не можете «вернуть» результаты этого вызова, так как эти результаты не будут доступны позже.Вы должны использовать некоторую форму функции обратного вызова (независимо от того, заключаете ли вы ее в синтаксический сахар Promise), чтобы обработать результаты вашего асинхронного вызова.