Node.js在app.js中导出模块,包括各个模块中的app.js

时间:2012-01-30 16:08:47

标签: database node.js express

所以我正在将我的快递应用程序分成模块,我有一个问题。

目前我的app.js包含:

var db = module.exports.db = require('./helpers/db')(app.set('database'))

和模型文件包含:

var DB = require('../app').db;

阅读This之后,构建模块的一种方法似乎是从模块中导出应用程序并需要应用程序,然后直接在路上使用该模块。

这意味着在我的db.js中我需要require('../ app'),在我的模型中我会db = require('db')。

目前db.js返回一个mysql连接的新实例:

 module.exports = function(settings) {
return new MysqlDB(settings);

}

我错误地认为将app.js移出module.exports.db并且在每个模型中直接要求db.js会创建多个连接实例吗?

我自己写了这个有点困惑,所以请让我知道我可以在哪里改进这个问题。 欢迎任何和所有提示,我真的希望更好地了解这一切。

谢谢!

1 个答案:

答案 0 :(得分:1)

我倾向于将需求推入模块,而模块必须知道在哪里获取db对象的实例。这减少了耦合,并且更容易注入模拟db对象用于测试目的。