mySQL node.js 中的查询返回未定义
mySQL query in node.js is returning 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 {
return result;
}
});
}
const app = express();
app.get("/", function(req, res) {
res.send(randomfact());
console.log(randomfact());
});
我对该问题的最佳猜测是我返回的数据类型不正确,但我不确定如何修复它。
任何建议都是很好的建议,谢谢!
将您的 randomfact
函数更改为 return 查询结果:
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
到return结果:
app.get("/", async function(req, res) {
const result = await randomfact();
res.send(result);
console.log(randomfact());
});
进行 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
函数更改为 return 查询结果:
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
到return结果:
app.get("/", async function(req, res) {
const result = await randomfact();
res.send(result);
console.log(randomfact());
});