mysql - 如何结束 mysql 连接而不让它卡在 NodeJS 中?

标签 mysql node.js connection npm sails.js

我试图在我的 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/

相关文章:

ruby-on-rails - Postgresql:致命:用户 "rooms"的密码身份验证失败

java - "connectionTimeout"在Tomcat中到底是什么意思?

mysql - 根据返回值覆盖现有数据

Python Django : displaying special characters in admin, 但不在我的网站上?

javascript - Nodejs和mysql,查询中的多个条件

Node.js 中的 JSON 转换

Python客户端套接字正在连接,即使服务器不接受新连接并且积压大小为0

php - 从 db PDO 返回数组结果

mysql - 将 SQL 语句添加到 ADODB 连接

angularjs - 客户端和服务器端身份验证有什么区别?