例如,在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 has no method 'createConnection' "
理论上不应创建另一个连接?
最佳答案
不,您不需要每次都创建一个新实例。
您的代码的问题在于您对两个不同的对象使用相同的全局变量m
。
在 mysql func 定义中,您将全局变量 m
定义为 mysql 模块,然后将全局 m
重新定义为 new mysql
.
试试这个:
var m = new mysql();
关于mysql - node-mysql 多个实例失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21928326/