javascript - NodeJS MySQL 如何获取查询函数之外的结果

标签 javascript mysql node.js express connection-pooling

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

相关文章:

Mysql 按其他表的数据排序

node.js - 在代码中创建 Node.js 枚举以匹配数据库中的值列表

javascript - 如何处理共享同一集合的多个 Marionette CollectionView

javascript - 使用 typescript 将 Json 转换为数组 Angular 2 js

javascript - 提交后如何重定向

javascript - 针对 HTML5 视频播放器优化的 Javascript

php - 重试失败的 MySQL 查询?

sql - 帮助建立数据库

javascript - 使用 .then 函数时页面未加载

javascript - 如何使 Hapi 插件仅适用于特定域或子域?