gpt4 book ai didi

mysql - NodeJS 与 mysql 返回第一个查询结果

转载 作者:行者123 更新时间:2023-11-29 08:27:31 26 4
gpt4 key购买 nike

我有一个带有 Express 和 mysql 的 NodeJS。我已经放置了一个通用 sql 函数,因此我多次调用它:

exports.selectCommand=function(table,cols,cond){
var connection = mysql.createConnection({
host : hostname,
database: databasename,
user : username
});
try{
connection.query("SELECT "+cols+" As data from "+table+" where "+cond+" ", function(err, rows, fields) {
if (err) return "sorry, an error accoured. Please try again later";
if(rows.length!=0){
cmd = rows[0].data.toString();
}
});
}catch (e){console.log(e.message);}
connection.end();
return cmd; };

我通过它发送查询,但问题是它返回我发送的第一个查询。

我将上述函数放在另一个文件中,并调用它:

var db=require('./db.js');
..........
exports.psModel=function(){
var cmddata="";
cmddata=db.selectCommand("cmd","value","cmd='textbox'");
}

最佳答案

您的return cmd可能在处理查询之前返回。该调用是异步的。尝试将 return 语句放在回调中(以及连接结束)。像这样的事情:

try{
connection.query("SELECT "+cols+" As data from "+table+" where "+cond+" ",
function(err, rows, fields) {
connection.end();
if (err) return "sorry, an error occurred. Please try again later";
if(rows.length!=0){
cmd = rows[0].data.toString();
return cmd;
}
});
}catch (e){console.log(e.message);}

关于mysql - NodeJS 与 mysql 返回第一个查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17527967/

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