You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中Mongoose实现POST请求未将数据存入MongoDB问题求助

问题解决:Mongoose仅存入_id和__v字段,请求体数据未写入

核心原因及解决方案

1. 缺少请求体解析中间件

Express框架默认不会自动解析JSON格式的请求体,导致req.body为空对象,创建文档时自然只有Mongoose自动生成的_id和__v字段。

修复步骤:
在你的Express入口文件(如app.js/server.js)中添加JSON解析中间件:

const express = require('express');
const app = express();

// 关键:添加此中间件解析JSON请求体
app.use(express.json());

// 挂载你的任务路由(示例路径,根据实际调整)
const tasksRouter = require('./routes/tasks');
app.use('/api/tasks', tasksRouter);

2. 检查Postman请求配置

确保Postman的请求设置正确:

  • 请求方法选择POST
  • 请求URL与你的API路由匹配
  • Headers中添加Content-Type: application/json
  • Body选择raw格式,下拉菜单选JSON,然后输入正确的请求体:
    {"name":"Drink Water", "completed":false}
    

3. 补充异步错误处理(可选但推荐)

为createTask函数添加错误捕获,避免未处理的异步异常导致服务器崩溃:

const createTask = async (req, res) => {
  try {
    const task = await Task.create(req.body);
    res.status(201).json({ task });
  } catch (err) {
    res.status(400).json({ message: err.message });
  }
};

内容的提问来源于stack exchange,提问作者Kshitij Verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 08:42:45