node.js 中的 mySQL 查询返回未定义
Posted
技术标签:
【中文标题】node.js 中的 mySQL 查询返回未定义【英文标题】:mySQL query in node.js is returning undefined 【发布时间】:2021-08-25 00:33:07 【问题描述】:进行 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());
);
我对这个问题的最佳猜测是我返回了一个不正确的数据类型,但我不确定如何解决它。
任何建议都是好建议,谢谢!
【问题讨论】:
【参考方案1】:更改您的randomfact
函数以返回查询结果:
function randomfact()
let sql = 'SELECT id FROM facts ORDER BY RAND() LIMIT 1;';
return new Promise((resolve, reject) =>
db.query(sql, (err, result) =>
if (err)
reject(err);
else
resolve(result);
);
);
等待randomfact
返回结果:
app.get("/", async function(req, res)
const result = await randomfact();
res.send(result);
console.log(randomfact());
);
【讨论】:
以上是关于node.js 中的 mySQL 查询返回未定义的主要内容,如果未能解决你的问题,请参考以下文章
Node.js + Express POST 请求返回未定义
node.js:jsdom 的问题 - jQuery 对象返回未定义