var data;
function initM(){
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database:"ns2"
});
sql="SELECT id,first_name,last_name from stu_details";
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
con.query(sql,function (err, result)
{if (err) throw err;
data=result;//----> I want to save the returned result from the query in "data"
console.log(result);//--> prints the data of query
});
});
}
console.log(initM());
console.log(data);//--> prints "undefined"
我想将查询返回的结果保存在一个变量中,并在另一个函数中使用它。 打印“未定义” 坦克!
答案 0 :(得分:0)
您正在使用异步功能(例如con.query)。这意味着查询结束时将存储您的数据。同时,您的代码继续。
您可以使用promise和async函数来解决此问题。
var data;
async function initM() {
return new Promise((resolve) => {
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "ns2"
});
sql = "SELECT id,first_name,last_name from stu_details";
con.connect(function (err) {
if (err) throw err;
console.log("Connected!");
con.query(sql, function (err, result) {
if (err) throw err;
data = result;//----> I want to save the returned result from the query in "data"
console.log(result);//--> prints the data of query
// now the variable is set
resolve();
});
});
});
}
async function start() {
await initM();
console.log(data);//--> should print your data
}
start();