我似乎无法弄清楚如何在NodeJS MySQL Pool查询之外获取结果.这里有一些示例代码可以更好地解释我的意思.
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);
});