将项目拆分为多个OO类后,我必须通过多个构造函数传递对Model
实例(包含Mongoose模型和模式)的引用。
在Model
模块中创建model.js
类的实例,然后在我需要的任何地方都需要这个model.js
模块,这是不好的做法吗?
这样的事情:
Model = function () { ... }
module.exports = new Model();
这将依赖Node的module caching来允许在文件之间共享相同的Model
实例,例如拥有全局单例。
或者我应该通过构造函数显式传递依赖项吗?
答案 0 :(得分:1)
不,这不是一个坏习惯。事实上,很多人都是这样做的。
答案 1 :(得分:1)
我会说是的,这是一种不好的做法,很容易被滥用。它确保紧密耦合的模块,这意味着如果你离开mongoose,你将不得不修改每个接触数据库的文件。因为滥用单身人士的原因很糟糕,所有这些都是不好的。
仅仅因为许多人以某种方式做某事并不表示这是一件好事。