填充时猫鼬缺少模式错误

mongoose Missing schema error while populating

我正在为我的 MongoDB 数据库构建一个带有 express 的应用程序,使用 mongoose 作为 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();

这个群体 returns 给我一个 MissingSchema 错误,上面写着: MissingSchemaError:模型 'Posts' 的架构尚未注册。

与数据库的连接在主文件中:app.js

var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1/database');

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

因为您的参考是“User”,我认为您只需要使用正确的 Typpo 声明您的第一个模型

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

而不是

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

希望对您有所帮助。