node.js中的mySQL查询返回未定义

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 {

在进行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 {
        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());
});