gpt4 book ai didi

mysql - 从nodejs mysql连接函数返回数据

转载 作者:行者123 更新时间:2023-11-29 17:38:06 25 4
gpt4 key购买 nike

我正在这样做:

    var mysql = require('mysql');
var config = require('./../Config.js');

var connection = mysql.createConnection({
host: config.databaseConnection.host ,
user: config.databaseConnection.user,
password: config.databaseConnection.password,
database: config.databaseConnection.database
});

var executeQuery = function (querystring) {



connection.connect(function (err) {

if (err) throw err;
console.log("connected to database successfully");
connection.query(querystring,function(err,rows){
if(err) throw err;
console.log(rows);
});

});

}


module.exports = connection;

我希望我的函数executeQuery 返回“行”中的数据。我对回调进行了大量搜索,但无法理解事情是如何工作的。请帮我解决这个问题。

最佳答案

您可以将回调函数传递给executeQuery函数。类似下面的内容

var executeQuery = function (querystring, myCallbackFunction) {
connection.connect(function (err) {
if (err) throw err;
console.log("connected to database successfully");
connection.query(querystring, function (err, rows) {
if (err) throw err;
console.log(rows);
myCallbackFunction(rows);
});
});
}

const myCallbackFunction = function(rows) {
// do stuff here with rows
}

executeQuery(querystring, myCallbackFunction)

您还可以采用基于 promise 的方法

var executeQuery = function (querystring) {
return new Promise((resolve, reject) => {
connection.connect(function (err) {
if (err) throw err;
console.log("connected to database successfully");
connection.query(querystring, function (err, rows) {
if (err) throw err;
console.log(rows);
resolve(rown);
});
});
});
}

executeQuery(querystring).then((rown) => {
// do stuff here with rows
});

如果你需要循环使用这个,你可以这样做

const allPromises= [];
for (let i = 0; i < loopLength; i+=1) {
allPromises.push(executeQuery(querystring));
}
Promise.all(allPromises).then((result) => {
// code here
}

关于mysql - 从nodejs mysql连接函数返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50159365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com