node-mysql多个实例失败

时间:2014-02-21 07:46:10

标签: mysql node.js node-mysql

例如,在socket.io连接事件中 handleServer 是回调函数

function handleServer(s)
{
    m = new mysql();
    m.Query("blabla",function(r)
    {
        console.log(r)
    });
    m.Close();
}

mysql对象是:

m = require("mysql");

function Mysql()
{
    this.mysql = m.createConnection({ blablah });
    this.mysql.connect(function(err)
    {
        // blabla
    });
}

Mysql.prototype.Query = function(q, callback)
{
    this.mysql.query(q, function(err, v)
    {
        callback(v);
    })
}

在第一个函数调用(handleServer)中,查询被正确执行,但在连续调用中,这会导致抛出

  

“m没有方法'createConnection'”

理论上不应该创建另一个连接?

1 个答案:

答案 0 :(得分:1)

不,你不需要每次都创建一个新实例。

您的代码存在的问题是您对两个不同的对象使用相同的全局变量m

在mysql func定义中,您将全局变量m定义为mysql模块,然后将全局m重新定义为new mysql

试试这个:

var m = new mysql();