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

MERN项目表单提交POST /posts出现404错误,求解决方案

问题原因与解决方案

核心问题

你的前端发送的是POST请求到/posts,但后端路由中没有配置对应这个路径的POST路由规则,反而错误地把创建接口设成了GET /posts/create,导致请求找不到对应处理逻辑,返回404。

修正步骤

1. 修正后端路由配置

打开后端routes/posts.js,将创建帖子的路由从GET方法改为POST,并把路径调整为根路径/:

import express from 'express';

import { getPosts, createPosts } from '../controllers/posts.js';

const router = express.Router();

router.get('/', getPosts);
// 修改这行:把GET改为POST,路径从/create改为/
router.post('/', createPosts);

export default router;

2. 确保控制器正确处理POST请求

确认controllers/posts.js中的createPosts函数能正确读取请求体并执行创建逻辑,示例代码如下:

// 请根据你的实际Mongoose模型调整
import Post from '../models/post.js';

export const createPosts = async (req, res) => {
  const postData = req.body;
  try {
    const newPost = await Post.create(postData);
    res.status(201).json(newPost);
  } catch (error) {
    res.status(409).json({ message: error.message });
  }
};

3. 验证生效

重启后端服务器使路由修改生效,此时前端发送的POST http://localhost:5000/posts请求会被后端正确捕获处理,404问题即可解决。

额外检查项

  • 确认前端api/index.js中的createPost函数确实使用axios.post(url, newPost)发送请求(你当前代码已符合要求)
  • 检查Mongoose模型定义是否正确,确保create操作能正常写入数据库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 06:45:28