在平均筹码方面,我是一个新人。我生成了一个包ModelA。我还生成了ModelB。我现在尝试在ModelA控制器中引用2个模型。例如

型号/ModelA.js

var ModelA = new Schema({
    name: String
});

mongoose.model('ModelA', ModelA);


型号/ModelB.js

var ModelB = new Schema({
   name: String
});

mongoose.model('ModelB', ModelB);


包/控制器/ModelA.js

var mongoose = require('mongoose'),
ModelA = mongoose.model('ModelA'),
ModelB = mongoose.model('ModelB'),
_ = require('lodash');


我不断收到MissingSchemaError:尚未为模型“ ModelB”注册架构。我想我的问题是如何在控制器/模型A中引用模型B?

最佳答案

您可能想要以下内容:

型号/ModelA.js

module.exports = mongoose.model('ModelA', ModelA);


然后在任何其他文件中:

var ModelA = require('./path/to/Model/ModelA.js');
ModelA.find({}); // etc.


module.exports在另一个文件中require d时将返回其值。然后,当您需要实例/对象时,可以将require分配给var并对其执行操作。在这种情况下,ModelA是一个Mongoose模型对象,可以在包含它的任何地方使用。

09-16 17:39