所以我正在将我的快递应用程序分成模块,我有一个问题。
目前我的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会创建多个连接实例吗?
我自己写了这个有点困惑,所以请让我知道我可以在哪里改进这个问题。 欢迎任何和所有提示,我真的希望更好地了解这一切。
谢谢!
答案 0 :(得分:1)
我倾向于将需求推入模块,而模块必须知道在哪里获取db对象的实例。这减少了耦合,并且更容易注入模拟db对象用于测试目的。