MERN栈开发时Postman发送POST请求长时间pending无响应问题求助
问题排查与解决方案
1. 核心错误:CORS中间件未正确调用
你主服务入口文件中的app.use(cors);写法错误:cors是需要主动调用的函数,调用后才会返回符合Express规范的中间件。未加括号直接传入cors会导致请求进入该中间件后无法正常执行next()转发到后续路由,请求直接被挂起,就是你看到的长时间无返回的情况。
修复方式:将该行代码修改为
app.use(cors());
2. 其他可排查的潜在问题
如果修改后仍有问题,可以按照以下顺序逐一排查:
- 确认MongoDB连接正常:启动服务后检查控制台是否打印
MongoDB database connection established succesfully日志,若未打印说明.env文件中的ATLAS_URI配置错误,或者本地网络无法正常连接MongoDB Atlas服务,数据库操作无法执行会导致请求无响应。 - 补充Mongoose连接兼容配置:针对不同版本的Mongoose,可补充连接参数避免兼容问题,同时新增
useCreateIndex参数保证Schema中定义的username唯一索引能正常创建:
mongoose.connect(uri, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true });
- 确认Postman请求配置正确:检查请求方法为POST,请求体选择raw格式且类型设置为JSON,保证请求头中自动携带
Content-Type: application/json,否则express.json()中间件无法正确解析请求体参数,也可能触发异常。
内容的提问来源于stack exchange,提问作者Matteo Possamai
相关产品推荐
相关产品推荐

