为了账号安全,请及时绑定邮箱和手机立即绑定

CastError:模型“”的路径“_id”处的值“未定义”转换为 ObjectId 失败

CastError:模型“”的路径“_id”处的值“未定义”转换为 ObjectId 失败

慕后森 2023-09-21 10:51:13
我正在尝试使用 MERN 堆栈制作一个应用程序。当我尝试将用户添加到当前数据库时,它返回“CastError: Cast to ObjectId failed for value "undefined" at path "_id" for model "Project"我做错了什么?”API.jsimport axios from "axios";export default {    updateUser: function (id, data) {    return axios.put("/api/user/" + id, data);  },}apiRoute.jsapp.put("/api/project/:id/add-user", async (req, res) => {    // Find the project that was created and update it with a user    // console.log("Hello")    try {      const dbProject = await db.Project.findOneAndUpdate({ _id: req.params.id }, {        // Append the User to the Project object        $push: { users: req.body.userId }      }, { new: true });      // Send the request back to the front end      res.send(dbProject)    } catch (error) {      console.log({ "PUT - Project Add User": error })      res.send(error)    }  });项目.js(模型)const mongoose = require('mongoose');const { Schema } = mongoose;const projectSchema = new Schema({  project_name: {    type: String,    unique: true  },  team_lead: String,  description: String,  tags: String,  location: String,  num_members: Number,  // image: String,  users: [    {      type: Schema.Types.ObjectId,      ref: "users"    }  ]});const Project = mongoose.model('Project', projectSchema);module.exports = Project;
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

你的错误非常明显出了什么问题。再读一遍:

CastError:模型“Project”的路径“_id”处的值“未定义”转换为 ObjectId 失败

undefined...路径“_id”失败...

这意味着您的req.params.id,因为它位于字段/路径“_id”,所以未定义。检查您是否确实向路线发送了一些值。

您从客户端向您的路线发送了错误的参数

const dbProject = await db.Project.findOneAndUpdate({ _id: req.params.id }, {

    // Append the User to the Project object

    $push: { users: req.body.userId }

  }, { new: true });


查看完整回答
反对 回复 2023-09-21
  • 1 回答
  • 0 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信