我应该需要一个猫鼬模型还是直接从猫鼬那里得到它

Shoud I require a mongoose model or get it from mongoose directly

我在文件中有一个模型 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 执行一个模块代码(在这种情况下,每次我导入它时都会 "run" Model.js),会不会是像这样导入它更有效(或至少更有意义)?:

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

您的问题包含不正确的假设:

If every time I require a module the code is executed (in this case it would "run" Model.js every time I import it)...

Model.js 中的代码只是 运行 第一次调用 require 来加载该模块。然后将生成的模块对象放置在 require.cache 中,随后 require 调用同一模块只是 return 来自缓存的相同模块对象。

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