我正在创建一个Express应用程序并使用Mongoose来保存数据。
我创建了一个用户模型(用户名和密码)。它需要能够被保存。所以我在Models / user-model.js中使用require('mongoose')
。在用户的路线中,我希望能够获得所有用户或只是找到一些用户。所以我也需要require('mongoose')
。同样在主js文件(app.js)中,我创建了一个与数据库的连接,因此也存在require('mongoose')
。
这一切都运作良好,但它是在所有这些文件中需要mongoose的最佳方式吗?或者有更好的方法吗?
答案 0 :(得分:4)
嗯,“ best ”很难肯定。但是,你所做的是一种常见的做法,在大多数情况下应该没问题。
第一次mongoose
是必需的,它将是cached for subsequent requires:
模块在第一次加载后进行缓存。这意味着(除其他外)每次调用
require('foo')
将获得完全相同的返回对象,如果它将解析为同一文件。多次调用require('foo')可能不会导致模块代码多次执行。 [...]
答案 1 :(得分:0)
考虑到模块缓存...你认为创建一个全局APP对象并在引导程序中存储模型和库之类的东西,然后将该对象传递给其他模块或仅需要模块依赖项是一个好主意吗?什么时候需要我们的模块有很多require()句子?