使用Axios向Express服务器发送POST请求时出现ECONNRESET错误
解决Axios POST请求到Express时的ECONNRESET错误
核心问题原因
你的Express服务器没有配置JSON请求体解析中间件,Axios发送的JSON格式请求体无法被服务器解析,导致请求处理异常,最终触发客户端的ECONNRESET错误,服务器也无法接收到请求数据。
解决方案步骤
1. 给Express添加JSON解析中间件
在服务器代码的路由定义之前,添加express.json()中间件,让Express自动解析JSON格式的请求体:
修改后的服务器代码:
const express = require('express'); const app = express() const port = 3000 // 添加JSON解析中间件,必须放在路由之前 app.use(express.json()); var listOfNames = []; app.post('/start', async (req, res) => { listOfNames = req.body.names; console.log(listOfNames); res.status(200).send("Names added"); }); app.get('/', function(req, res, next) { res.send("Welcome to the homepage of bowling"); }) app.listen(port, () => { console.log('Listening to request on port 3000'); });
2. 验证修复效果
- 重启服务器
- 重新运行客户端程序,输入名字后发送请求,此时服务器应该能正常打印接收到的名字数组,客户端也能收到成功响应。
其他排查点(如果上述修复无效)
- 检查3000端口是否被其他程序占用:可以用
netstat -ano | findstr :3000(Windows)或lsof -i :3000(Mac/Linux)查看端口占用情况,换用未被占用的端口。 - 确认客户端请求的URL完全正确:确保是
http://localhost:3000/start,没有拼写错误。 - 暂时关闭本地防火墙或杀毒软件,排查是否有请求拦截的情况。
内容的提问来源于stack exchange,提问作者macman926
相关产品推荐
相关产品推荐

