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

Postman中POST请求出现404 Not Found错误求助

后端POST路由404问题排查求助

我正在为应用搭建后端,已成功连接数据库并配置服务器端口,但创建首个POST路由时持续出现404 Not Found错误。错误提示两种可能:

  1. 不存在对应URL
  2. 完全无API/组织访问权限

我的代码

routes.js

const ContactList = require('./Model/ContactList');

app.post('/add-contact', async (request, response) => {
  const contactList = new ContactList(request.body);
  try {
    await contactList.save();
    response.status(201).json({
      status: 'Success',
      data: {
        contactList
      }
    });
  } catch (err) {
    response.status(500).json({
      status: 'Failed',
      message: err
    });
  }
});

Schema Model代码

const mongoose = require('mongoose');

const ContactListSchema = new mongoose.Schema({
  first_name: {
    type: String,
    required: true
  },
  last_name: {
    type: String,
    required: false
  },
  email: {
    type: String,
    required: false
  },
  phone: {
    type: Number,
    required: true
  },
  birthday: {
    type: Date,
    required: false
  }
});

const ContactList = mongoose.model('ContactList', ContactListSchema);
module.exports = ContactList;

已尝试的排查操作

  • 删除文件重新编写,排查拼写错误
  • 反复核对服务器端口号
  • 将请求协议从HTTP切换为HTTPS
  • 在URL末尾添加斜杠
  • 删除并重建MongoDB集群
  • 修改路由为http://localhost:8080/api/add-contact

Postman请求截图

Postman请求截图


问题排查建议

  1. 检查路由是否正确挂载到主应用
    你的routes.js直接使用app.post,如果这是独立路由模块,需改用express.Router导出后在主文件挂载:

    // routes.js 修改后
    const express = require('express');
    const router = express.Router();
    const ContactList = require('./Model/ContactList');
    
    router.post('/add-contact', async (request, response) => {
      // 原逻辑不变
    });
    
    module.exports = router;
    

    然后在主文件(如app.js)中引入并挂载:

    const contactRoutes = require('./routes');
    // 若要加/api前缀,就用下面这句,否则直接app.use(contactRoutes)
    app.use('/api', contactRoutes);
    
  2. 确认主应用已引入路由文件
    检查主启动文件(server.js/app.js)是否正确require了routes.js,且挂载路径与请求URL匹配。比如挂载时用了/api前缀,请求URL就必须是http://localhost:8080/api/add-contact。

  3. 核对请求方法与URL拼写
    确保Postman使用POST方法,URL路径和路由完全一致(express路由默认区分大小写),比如不能把/add-contact写成/Add-Contact。

  4. 检查中间件顺序
    主应用中的路由挂载必须在错误处理中间件之前,否则请求会被错误处理逻辑提前拦截。

  5. 验证服务器运行状态
    在主启动文件中添加启动日志:

    app.listen(8080, () => console.log('服务器运行在8080端口'));
    

    确认服务器正常启动,且Postman请求的端口与日志显示一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:52:18