首页 > 解决方案 > 在 Express 和 Mongo 中使用方法填充时出现 500 错误

问题描述

当我对用户的帖子使用 populate() 方法时,我无法从 Mongo 获取用户数据。

router.get("/users", (req, res) => {
User.find()
.populate("posts")
.exec()
.then((users) => {
  res.json({ users });
})
.catch((err) => console.log(err));
});

Mongo 架构

const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const { ObjectId } = mongoose.Schema.Types;
const Post = require("../models/Post");

const UserSchema = new Schema({
  name: {
    type: String,
    required: true
  },
  username: {
    type: String,
    requied: true
  },
  userimg: {
    type: String
  },
  followers: [
    {
      type: ObjectId,
      ref: "User"
    }
  ],
  following: [
    {
      type: ObjectId,
      ref: "User"
    }
  ],
  posts: [
    {
      type: ObjectId,
      ref: "Post"
    }
  ],
  email: {
    type: String,
    required: true
  },
  password: {
    type: String,
    required: true
  },
  date: {
    type: Date,
    default: Date.now
  }
});

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

当我删除 .populate("posts") 时,我得到了 200 个成功状态和用户数据,但没有从帖子集合中填充引用的帖子。

标签: node.jsreactjsmongodbexpress

解决方案


谢谢大家的帮助。我发现了错误:参考:“帖子”而不是参考:“帖子”参考:“用户”而不是参考:“用户”


推荐阅读