Mysql-Node池 - 释放连接错误和节点

时间:2015-12-22 14:25:34

标签: node.js express node-mysql

configuration.js

var mysql = require('mysql');
var pool  = mysql.createPool({
    connectionLimit : 10,
    host            : 'localhost',
    user            : 'root',
    password        : '',
    database        : 'test'
});

pool.getConnection( function(err, connection) {
    if (err) console.error('error connecting: ' + err.stack);
     return;
});
module.exports = pool;

user.js模型文件

var async = require("async");
var homePage = function HomePage( user_id ) {   
    this.user_id = user_id;
    this.db   = require('../config/configuration');
}
homePage.prototype.getCourse = function( callback ){
    var self = this;
    self.db.query(' my sql query ', [ self.user_id ], function (error, results, fields) {
        self.db.release();
        callback(err,results);
    });
};          

我已经在这里导出了我的数据库连接,并且我在每个模型文件中都需要该模块(configuration.js)。我假设它每次都会从Node.js docs加载相同的数据库连接: 每次调用require(' foo')都将获得完全相同的返回对象,如果它将解析为同一个文件。

由于这是我第一次使用JS和异步编程编写代码,因此我对一些事情感到困惑。我将加载相同的配置文件,因为我希望我的db文件具有单例类型模式。我的方法是否正确?

当我这样做时 - self.db.release()我假设我正在释放一个回到游泳池的连接。但它给出了一个错误,我无法弄明白,因为其他一切正常。错误是 -

        self.db.release() is not a function 

如果我对此行发表评论,它的工作正常。有没有办法看到这个版本正在返回什么,因为它将有助于调试。

此外,我的方法是正确的。

0 个答案:

没有答案