我正在构建一个app,使用mongoose作为我的MongoDB数据库的ORM。
我有2个模型位于不同的文件中:用户和帖子。
User.js模型看起来像
var mongoose = require('mongoose'),
moment = require('moment'),
Schema = mongoose.Schema,
UserSchema = new Schema({
created_at: {type: Date, default: moment()),
name: String
});
module.exports = mongoose.model('user', UserSchema);
和Posts.js模型
var mongoose = require('mongoose'),
moment = require('moment'),
Schema = mongoose.Schema,
PostSchema = new Schema({
created_at: {type: Date, default: moment()},
user: {type: Schema.Type.ObjectId, ref: 'User'}
});
我在控制器中将它们称为
的单独文件var Post = require('../models/User'),
User = require('../models/Posts');
Post.find().populate('user').exec();
这个人群给我一个MissingSchema错误,上面写着: MissingSchemaError:模型的模式'帖子'还没有注册。
与数据库的连接位于主文件中:app.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1/database');
有谁能告诉我我的代码有什么问题?
答案 0 :(得分:0)
因为您对" User
"的引用,我认为您只需要使用正确的Typpo声明您的第一个模型
module.exports = mongoose.model('User', UserSchema);
而不是
module.exports = mongoose.model('user', UserSchema);
希望它有所帮助。