Mysql,保存查询结果

时间:2018-03-11 12:34:33

标签: node.js

在我搜索网页的所有教程中,他们使用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: []中使用结果,见下文:
enter image description here

1 个答案:

答案 0 :(得分:2)

重新开始一个简单的项目

  

按照以下命令

mkdir testdb
cd testdb
npm install --save mysql
npm install --save async
  

创建test.js文件

vim text.js
  

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

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]

希望这有帮助!