node.js中的mySQL查询返回未定义
在进行sql查询时,我的函数返回未定义。我不确定如何解决这个问题,当我用谷歌搜索这个问题时,我感到困惑。以下是我的代码的一部分:node.js中的mySQL查询返回未定义,mysql,node.js,json,database,undefined,Mysql,Node.js,Json,Database,Undefined,在进行sql查询时,我的函数返回未定义。我不确定如何解决这个问题,当我用谷歌搜索这个问题时,我感到困惑。以下是我的代码的一部分: function randomfact() { let sql = 'SELECT id FROM facts ORDER BY RAND() LIMIT 1;'; let query = db.query(sql, (err, result) => { if (err) { throw err; } else {
function randomfact() {
let sql = 'SELECT id FROM facts ORDER BY RAND() LIMIT 1;';
let query = db.query(sql, (err, result) => {
if (err) {
throw err;
}
else {
return result;
}
});
}
const app = express();
app.get("/", function(req, res) {
res.send(randomfact());
console.log(randomfact());
});
我对这个问题的最佳猜测是,我返回了一个不正确的数据类型,但我不确定如何修复它
任何建议都是好建议,谢谢 更改
randomfact
函数以返回查询结果:
function randomfact(){
让sql='按RAND()限制1从事实顺序中选择id;';
返回新承诺((解决、拒绝)=>{
数据库查询(sql,(错误,结果)=>{
如果(错误){
拒绝(错误);
}
否则{
决心(结果);
}
});
});
}
等待randomfact
返回结果:
app.get(“/”,异步函数(req,res){
常量结果=等待随机事实();
res.send(结果);
log(randomfact());
});