Shoud我需要猫鼬模型或直接从mongoose获取它

时间:2017-09-21 13:57:22

标签: node.js mongoose mongoose-schema

我在文件models/Model.js中有一个模型,如下所示:

const mongoose = require('mongoose')
const modelSchema = mongoose.Schema({ name: String })
const Model = mongoose.model('Model', modelSchema)
module.exports = Model

然后当我使用它时,我像任何其他模块一样导入它:

const Model = require('../models/Model')

我的问题是:如果我require每次执行一个模块代码(在这种情况下每次导入时它都会“运行”Model.js),那么它会更有效(或者至少更有意义)这样导入它?:

const mongoose = require('mongoose')
const Model = mongoose.model('Model')

1 个答案:

答案 0 :(得分:2)

您的问题包含错误的假设:

  

如果每次我需要一个模块,代码就会被执行(在这种情况下就是它   会"跑"我每次导入时都会使用Model.js ... ...

Model.js中的代码仅在第一次调用require以加载该模块时运行。然后将生成的模块对象放在require.cache中,对该模块的后续require调用只是从缓存中返回相同的模块对象。

因此,两种方法之间没有明显的性能差异,这取决于您的个人偏好。