我遇到以下错误:
致命错误:尚未为模型" 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({})
。试图把条件总是正确但每次都是相同的错误。
答案 0 :(得分:3)
请尝试更改:
aid: {type:Schema.Types.ObjectId, ref:"a"},
到
aid: {type:Schema.Types.ObjectId, ref:"A"},
我认为它区分大小写,并且您将模型声明为:
module.exports = mongoose.model('A', A);