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

服务器无法接收Post请求,Postman提示无法获取响应如何解决?

问题排查与修复

你的代码存在两个核心问题,直接导致了请求超时无响应:

1. bodyParser 中间件未正确初始化

在server.js中,你写的是:

app.use(bodyParser.json);

这里的bodyParser.json是函数本身,必须调用它才能返回可用的中间件函数,正确写法是:

app.use(bodyParser.json());

如果不调用该方法,Express无法解析请求体,请求会一直卡在处理流程中,无法进入后续路由逻辑。

2. /verify 路由未返回响应

在Auth.js的/verify路由里,你仅打印了req.body,但没有向客户端发送任何响应:

router.post('/verify', (req, res) => {
    console.log(req.body)
})

HTTP协议要求每个请求必须对应一个响应,否则客户端会一直等待直到超时。你需要添加响应语句,比如:

router.post('/verify', (req, res) => {
    console.log(req.body);
    // 返回JSON格式响应
    res.json({ received: req.body });
    // 或者简单返回状态码与提示
    // res.status(200).send('请求已接收');
})

修改后的完整代码示例

server.js

const express = require('express')
const port = 3000
const app = express();
const bodyParser = require('body-parser');
require('./db');
require('./Models/user');
const Authroutes = require('./routes/Auth');

// 修正bodyParser调用方式
app.use(bodyParser.json());
app.use(Authroutes);

app.get('/', (req, res) => {
    res.send('Hello World')
})

app.listen(port, () => {
    console.log('server is running at 3000!');
})

Auth.js

const express = require('express');
const router = express.Router();
const mongoose = require('mongoose');
const User = mongoose.model('User');
const jwt = require("jsonwebtoken");
require('dotenv').config();
const nodemailer = require("nodemailer");

router.post('/verify', (req, res) => {
    console.log(req.body);
    // 添加响应逻辑
    res.status(200).json({ message: "请求接收成功", data: req.body });
})

module.exports = router;

修改完成后重启服务器,再用Postman测试,请求即可正常收到响应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:01:35