2016-01-21 19 views
0

首先,我的英語水平很差 我真的很抱歉,發模塊,但不能達到functon

我從其他

DB_OBJ.js

module.exports = (function() { 
var _mysql = require('mysql'); 
var _self = null; 
var _connFlag = false; 

var _mysqlConfig = { 
    host: "127.0.0.1", 
    port: 3306, 
    user: "tester", 
    password: "*****", 
    database: "*****" 
}; 

var _conn = null; 

var _init = function(){ 
    _conn = _mysql.createConnection(_mysqlConfig); 

    _conn.connect(function(err) {    
     if (err) {  
      console.log(err); 
     } 
     _connFlag = true; 
    }); 

}; 



var db_obj = function (args) { 
    _self = this; 

    if (args) { 
     _mysqlConfig.host = (args["host"]) ? args["host"] : "127.0.0.1"; 
     _mysqlConfig.port = (args["port"]) ? args["port"] : "3306"; 
     _mysqlConfig.user = (args["user"]) ? args["user"] : "*****"; 
     _mysqlConfig.password = (args["password"]) ? args["password"] : "*****"; 
     _mysqlConfig.database = (args["database"]) ? args["database"] : "*****"; 
    } 

    this.init = function() { 
     _init(); 
    }; 

}; 

return db_obj; 

})(); 
使這個代碼隱藏私人活動&瓦爾

main.js

var db_obj = new require('./DB_OBJ'); 
db_obj.init(); 

但是這個代碼錯誤發生的:

TypeError: db_obj.init is not a function

請。讓我知道我該如何解決它?

謝謝。

+0

有這個代碼頗有幾分古怪的(增值經銷商不習慣,功能空函數包裝,一個完全忽略你傳入的參數的初始化函數等)。這個模塊應該做什麼?而不是做這個奇怪的事情,只需創建一個對象來建立連接,並讓你的模塊返回。從這樣的事情開始? http://jsbin.com/hepuwoxeke/edit?js,output –

+0

它只是一些,完整的代碼太多了。我添加了一些更多的代碼'使用args var'來更加清楚它 –

+0

@AlbertYun,在db_obj中沒有任何返回...我更新了我的答案... – zangw

回答

0

更改db_obj如下

var db_obj = function (args) { 
    _self = this; 

    if (args) { 
     _mysqlConfig.host = (args["host"]) ? args["host"] : "127.0.0.1"; 
     _mysqlConfig.port = (args["port"]) ? args["port"] : "3306"; 
     _mysqlConfig.user = (args["user"]) ? args["user"] : "*****"; 
     _mysqlConfig.password = (args["password"]) ? args["password"] : "*****"; 
     _mysqlConfig.database = (args["database"]) ? args["database"] : "E3MultiCore_v1"; 
    } 

    _self.init = function() { 
     _init(); 
    }; 

    return _self; 
}; 

main.js

var db_obj = new require('./DB_OBJ'); 

db_obj().init(); 
+0

非常感謝你~~~。它的工作:) –