Felixge / Node-Mysql单独的连接文件

时间:2013-04-03 16:02:50

标签: javascript mysql database node.js

我试图在Node中为我的节点应用程序使用felixge / node-mysql。 但是,而不是通常的

mysql.createConnection(...) 
在app.js中的

,我希望将它作为“配置”文件分开。 现在在我的config.js中它是:

function localConnect(){
    //Node Mysql dependency npm install mysql@2.0.0-alpha7
    return require('mysql').createConnection({
        hostname: 'localhost',
        user: 'username',
        password: 'password',
        database: 'database'
    });
}

并在app js:

...
//Node Mysql dependency npm install mysql@2.0.0-alpha7
var mysql = require('mysql');
//MYSQL database config file
var connection = require('./config.js').localConnect();
connection.connect();

和connection.connect()失败。

目的是让我可以将它提交到我的仓库而不暴露我的数据库连接信息,并且仍然为他们想要使用它的用户提供dbSample文件。

有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

我不知道在Node中导出,所以根据Nick的提示,以下代码适用于config.js:

var mysql = function localConnect(){
    //Node Mysql dependency npm install mysql@2.0.0-alpha7
    return require('mysql').createConnection({
        hostname: 'localhost',
        user: 'username',
        password: 'password',
        database: 'database'
    });
}
module.exports.localConnect = mysql;

在app.js中:

//MYSQL database config file
var connection = require('./config.js').localConnect();
connection.connect(); //Successful

答案 1 :(得分:0)

另一种选择:

DB-config.js

module.exports = {
  hostname: 'localhost',
  user: 'username',
  ...
};

db.js

var config = require('./db-config');

module.exports = require('mysql').createConnection(config);

app.js

var db = require('./db.js');
db.query('SELECT ?', [ 1 ], function (err, data) { ... });