我似乎无法弄清楚如何在 NodeJS MySQL 池查询之外获取结果。这里有一些示例代码可以更好地解释我的意思。
var result = 'Hello world!';
var mysql = require('mysql');
var pool = mysql.createPool({
connectionLimit : 100,
host : process.env.DB_HOST,
user : process.env.DB_USERNAME,
password : process.env.DB_PASSWORD,
database : process.env.DB_DATABASE
});
pool.query('SELECT * from user LIMIT 10', function (err, rows) {
result = rows;
});
res.send(result);
以上将返回“Hello world!”而不是查询。
如果我在 pool.query 函数中使用 console.log(result),它会返回查询中的行,但我似乎无法在函数之外获取数据。我已经记录了该功能并检查了所有相关功能,我想我只是缺少一些基本的东西。
最佳答案
您将在查询完成(并调用回调)之前发回结果。在您的回调中发送结果将解决问题:
pool.query('SELECT * from user LIMIT 10', function (err, rows) {
result = rows;
res.send(result);
});
正如 Aaron 所指出的,这是一个常见问题。可以找到更彻底的答案 here .
关于javascript - NodeJS MySQL 如何获取查询函数之外的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30242416/