mysql节点:连接未定义错误

时间:2014-01-21 01:15:06

标签: mysql node.js

我遇到了一个奇怪的错误,这可能是因为我对mysql / node的理解不充分:

目前,我正在运行一个脚本,该脚本尝试向查询mysql数据库的函数进行500,000次调用(总计)。 我遇到的错误出现在几千次迭代之后,当突然“连接”时,即pool.getConnection创建的对象 突然未定义,我的代码崩溃了。

我认为这或许与我有太多连接打开的事实有关,但是自从代码开始 遇到此错误是作为回调函数的一部分发生连接后,我很困惑。 如果有人可以看看我的代码(运行500,000次的代码)并给我一些建议,我真的很感激! 作为最后一点,我注意到当我调用connection.destroy()而不是connection.release()时,我没有收到任何错误。 但是,当我这样做时,数据库不会被写入!

再次感谢...

function addOrUpdate(food, info){
    try{
    pool.getConnection(function(err, connection) {
        if (typeof(food)!="string" || typeof(info)!="object"){
            connection.release();
            return;}
        if(info['length']==0){
            connection.release();   
            return;
        }
        var f=connection.escape(food);
        connection.query("SELECT * FROM nut where name like "+f, function (err,results){
            if (err) throw err;
            if (results.length==0){
                console.log("INSERT INTO nut (name) values ("+f+")");
                connection.query("INSERT INTO nut (name) values ("+f+")");
                for(var key in info){
                    var v=connection.escape(info[key]);
                    console.log("UPDATE nut SET "+key+"="+v+" where name ="+f);
                    connection.query("UPDATE nut SET "+key+"="+v+" where name ="+f);
                }
            }
            connection.release();
        });
    });
    }
    catch(e){
        console.log('alternative error');
        connection.release();
}}

0 个答案:

没有答案