javascript – NodeJS MySQL如何在查询函数之外获取结果

我似乎无法弄清楚如何在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);
});

正如亚伦所指出的,这是一个普遍的问题.一个更彻底的答案可以找到here.

相关文章

根据官网 入门 express
java叫接口control什么的app.get.post等等都是请求方式我们可...
为了前端丢进去的时候可以直接判断中间件就是经过了这个就会...
Express 文件的上传和下载
运行命令下载app.js 增加中间件。
基本模板来的 后面用后就有什么加什么都行。