mysql - node-mysql 多个实例失败

标签 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 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/

相关文章:

php - PDO bindParam 是否允许不存在的变量?

node.js - node.js 中的 setTimeout 是如何实现的

mysql - node-mysql 连接结束或销毁不工作

mysql - 为不同环境配置不同 Node MySQL连接

mysql - Nodejs MySQL 日期时间格式化

mysql - ActiveRecord 数据库连接的回调?

mysql - 根据时间间隔查询获取计数值

php mysql插入数据,但是是在while循环中

javascript - 可配置的 vue 前端应用程序

javascript - 无法在测试套件中正确使用自定义 JavaScript 文件