在node.js,mongoose中过度使用require()

Col*_*lin 5 architecture design-patterns mongoose mongodb node.js

我是Node.js的新手,但很像模块系统和require().话虽如此,来自C背景,让我感到不安的是看到同样的模块require()到处都是.总而言之,它引导我做出一些偏离C中事情的设计选择.例如:

  • 我是否应该require()在定义猫鼬模型的每个文件中进行mongoose?或者将mongoose实例注入到定义模型的每个文件中.
  • 我应该require()在每个需要它们的模块中使用我的猫鼬模型吗?或者让模型提供者传递并用于提供这些模型.

等.对于那些经常使用依赖注入的人 - 我的直觉C感觉只告诉我require()一个模块,并根据需要传递它.但是,在看了一些开源的东西之后,这似乎并不是Node的方式.require()确实让事情变得非常容易..

过度使用这种机制是否有害?

小智 6

require()使用它时缓存模块.当你在任何地方看到需要相同的文件或模块时,它只被加载一次,而存储module.exports被传递.这意味着您可以require在任何地方使用,而不用担心性能和内存问题.