致命错误:架构尚未注册模型" a"。使用mongoose.model(名称,架构)

时间:2016-03-18 06:41:11

标签: node.js mongodb express mongoose mongoose-populate

我遇到以下错误:

  

致命错误:尚未为模型" a"注册架构。使用   mongoose.model(名称,架构)

这是我的文件结构:

-------- -------- a.model.js

'use strict';
 var mongoose = require('mongoose'),
 Schema = mongoose.Schema;
 var A = new Schema({
 name:String,
 });
 module.exports = mongoose.model('A', A);

-------- b.model.js -------

 'use strict';
 var mongoose = require('mongoose'),
 Schema = mongoose.Schema;
 var a = require('../a/a.model');
 var B = new Schema({
 aid: {type:Schema.Types.ObjectId, ref:"a"},
 name:String
 });
 module.exports = mongoose.model('B', B);

-------- --------- queryfile.js

 exports.all = function(req, res){
   b.find().populate("aid").exec(function (err, b) {
   if(err) {
  console.log(err);
  return handleError(res, err);
  }
  return res.status(200).json(b);
 });
}

我一直试图致电populate,但每当我收到上述错误时,我都会尝试将{}条件置于find({})。试图把条件总是正确但每次都是相同的错误。

1 个答案:

答案 0 :(得分:3)

请尝试更改:

aid: {type:Schema.Types.ObjectId, ref:"a"},

aid: {type:Schema.Types.ObjectId, ref:"A"},

我认为它区分大小写,并且您将模型声明为:

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