在我搜索网页的所有教程中,他们使用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: []
中使用结果,见下文:
答案 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]
希望这有帮助!