使用两个单独导出的模块填充node.js

时间:2014-03-04 17:24:17

标签: javascript node.js express

我的快递应用程序中有两个不同文件中的两个模式。

A.js 让SchemaA连接到collectionA

var SchemaA=new Schema({
  name: String,
  ...
}); 
module.exports = mongoose.model('collectionA', SchemaA);

B.js 将SchemaB连接到collectionB,但也有一个到SchemaA的DBref

var ModelA=require('./A.js');
var SchemaB = new Schema({
  an_id:[{ type: Schema.Types.ObjectId, ref: 'ModelA' }],
  name:String
)};

module.exports =mongoose.model('collectionB', SchemaB);

如何填充SchemaB。它给了我Schema没有注册错误。如果我再次重新使用模式,那么它表示模型已经填充在其自身之前。

但它似乎不起作用。

1 个答案:

答案 0 :(得分:0)

经过多次挖掘后再进行挖掘。我发现我们可以通过

调用已编译的模式
var ModelA = mongoose.model('collectionA');

在DBref中,ref:'ModelA'会发挥魔力。但是,在调用mongoose.model之前需要调用var ModelA=require('./A.js');,以便在该文件本身中编译模型。