我试图在我的 Node 程序中结束我的 mysql 连接。我可以使用 connection.end() 之类的东西成功地做到这一点。但是,当我这样做时,它似乎并没有在此之前运行查询。如果我在这似乎运行之前将结束语句留在我的插入查询中,但是程序随后挂起并且它永远不会结束。
这是我的代码
var mysql = require('mysql');
var connection = mysql.createConnection({'...'});
connection.connect(function(err){
});
for(var a=0; a<ticker.length;a++){
if(result[i].tweetText.indexOf(ticker[a]) > -1){
for(var j=0; j<positive.length;j++){
if((result[i].tweetText.indexOf(positive[j]) > -1) && check > -1){
console.log(result[i].tweetText + "\n")
plus++;
console.log(ticker[a] + "plus"+plus +"\n")
check = -1;
connection.query("insert into....", function(err, result) {
});
}
}
}
}
connection.end();
结束成功终止连接,但是我所有的插入语句都没有运行;当我删除结束连接语句时,我的插入语句运行但程序挂起。
最佳答案
您可以像我一样使用 mysql pool
。将您的连接设置存储在一个对象中,使用您的配置变量创建池,然后根据需要传递 con
,然后只需获取连接,查询您的数据库,它会处理所有事情为你。没有挂断。
var db_config = {
user:"",
password:"",
database:"",
port:80
};
var con = mysql.createPool(db_config);
然后使用getConnection
函数打开并释放连接。
con.getConnection(function(err){
con.query("SELECT * FROM tableName",function(err,result) {
});
});
您可以通过 github mysql source 了解有关池
连接的更多信息
关于mysql - 如何结束 mysql 连接而不让它卡在 NodeJS 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22495414/