mongoose填充时缺少模式错误

时间:2018-05-17 06:45:00

标签: node.js mongoose mongoose-schema mongoose-populate

我正在构建一个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');

有谁能告诉我我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

因为您对" User"的引用,我认为您只需要使用正确的Typpo声明您的第一个模型

module.exports = mongoose.model('User', UserSchema);

而不是

module.exports = mongoose.model('user', UserSchema);

希望它有所帮助。