Node.js Mysql,保存查询结果

Node.js Mysql,保存查询结果,node.js,Node.js,在我搜索web的所有教程中,他们使用mysql查询中的console.log。在我的例子中,我希望存储该值以在函数中操作它。问题是节点没有等待。你能帮我抓住这个例子中的行吗?如何将行存储在变量中 con.connect(function (err) { if (err) throw err; con.query("SELECT * FROM customers", function (err, result) { if (err) throw err; console.l

在我搜索web的所有教程中,他们使用mysql查询中的
console.log
。在我的例子中,我希望存储该值以在函数中操作它。问题是节点没有等待。你能帮我抓住这个例子中的行吗?如何将行存储在变量中

con.connect(function (err) {
  if (err) throw err;
  con.query("SELECT * FROM customers", function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});
我测试了其中一个解决方案,但在尝试从函数中获取结果/行时得到[]。我想在
savedServices:[]
中使用结果,请参见下文:

用一个简单的项目重新开始

遵循以下命令

创建test.js文件

现在将下面的代码放入test.js文件中

现在测试文件

node test.js
您应该看到如下结果:


希望这有帮助

用一个简单的项目重新开始

遵循以下命令

创建test.js文件

现在将下面的代码放入test.js文件中

现在测试文件

node test.js
您应该看到如下结果:



希望这有帮助

使用
async
模块我知道,但如何应用它,请回答并标记它。Express not waiting与Express无关。它与节点相关。将其包装在函数中,并使用结果回调,然后对结果执行任何需要的操作,将其存储在变量或诸如此类的内容中。此外,停止抛出错误,而是使用错误回调。如果不这样做,您将在处理应用程序中的错误时遇到问题。@Diamond如果您想让我写一个示例,请告诉我。使用
async
module我知道,但如何应用它,请回答标记它。Express not waiting与Express没有任何关系。它与节点相关。将其包装在函数中,并使用结果回调,然后对结果执行任何需要的操作,将其存储在变量或诸如此类的内容中。此外,停止抛出错误,而是使用错误回调。如果您不这样做,您将在处理应用程序中的错误时遇到问题。@Diamond如果您想让我写一个示例,请告诉我。我对此表示感谢,但您没有将结果/行存储在变量中,我在文章中已明确说明了这一点!谢谢你的互动。我想在截图上向你展示结果,所以我用截图更新了帖子。请检查它,让我们继续解决它。谢谢。这是异步问题。是的,在这种情况下,您需要使用异步。看看这个,我厌倦了应用它,无法实现它,如果这对你来说很容易,请更新你的答案与修复。我想看看如何应用。我想将你的答案标记为最佳答案。我很感激,但是你没有将结果/行存储在变量中,我在帖子中明确指出了这一点!谢谢你的互动。我想在截图上向你展示结果,所以我用截图更新了帖子。请检查它,让我们继续解决它。谢谢。这是异步问题。是的,在这种情况下,您需要使用异步。看看这个,我厌倦了应用它,无法实现它,如果这对你来说很容易,请更新你的答案与修复。我想看看如何应用。我想把你的答案标为最佳答案。
var mysql = require('mysql');
var async = require('async');

var con = mysql.createConnection({
  host: "localhost",
  database: "mydb",
  user: "user",
  password: "pass"
});

var myrows = [];

async.waterfall([
    function(callback) {
        con.connect(function(err) {
        if (err) throw err;
        console.log("Connected!");
        var sql = 'select * from users limit 5';
        con.query(sql, function (err, result) {
          if (err) throw err;

          result.forEach(function(item) {
            //console.log(item);
            myrows.push(item);
          });
          callback(null, myrows);
        });
      });
    }
],
// optional callback
function(err, myrows) {
    console.log("myrows:::");
    console.log(myrows);
});
node test.js
Connected!
Result: [object Object],[object Object],[object Object],[object Object],[object Object]