我想在我的节点程序中结束我的mysql连接。我可以使用connection.end()这样的东西成功地做到这一点。但是,当我这样做时,它似乎并没有在这之前运行查询。如果我在这似乎运行之前将结束语句放出我的插入查询,但是程序然后挂起并且它永远不会结束。如何结束一个mysql连接并且不让它在NodeJS中挂起?
这里是我的代码
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();
具有最终成功终止连接,但后来我所有的INSERT语句不运行;当我删除结束连接语句时,我的插入语句运行,但程序挂起。
这工作,但现在我的变量都将丢失,并提出为未定义。我没有得到的是为什么在整个循环完成后mysql语句正在运行;那么我的变量就会丢失,并被插入为未定义的。 – Faran
由于某些原因,当我使用connection.release()时,它仍然不会结束程序。 Connection.destroy()结束它,但我有我的查询语句不运行的同样的问题。我很困惑,为什么我的查询在所有处理之后运行,并且在执行for循环时未运行。 – Faran
@Faran你需要传递你的变量,如函数参数,否则它们将失去它们的范围。你不需要使用连接池 –