Express生产环境部署后GET请求出现连接超时问题求助
解决Express TypeScript生产环境部署连接超时问题
核心问题:必须指定端口
你的连接超时大概率是因为请求未指定端口,同时Windows防火墙拦截了外部对服务端口的访问,按以下步骤排查修复:
确认项目监听的端口
- 打开项目的
src/bin/www文件(或其他配置端口的文件),查看端口设置,通常默认是3000;启动npm start后,控制台会输出类似Server running on port 3000的日志,记下这个端口号。
- 打开项目的
修改Flutter请求URL,添加端口
将请求代码里的URL改成带端口的格式:void test() async { var url = Uri.http('ServerIPAddress:3000'); // 把3000换成你实际的端口号 try { var response = await http.get(url); if (kDebugMode) { print('Response status: ${response.statusCode}'); } } catch (e) { if (kDebugMode) { print('ERROR: $e'); } } }配置Windows防火墙放行端口
Windows默认防火墙会拦截内部网络对服务器端口的访问,需要添加入站规则:- 打开「Windows Defender防火墙」→「高级设置」→「入站规则」→「新建规则」
- 选择「端口」→ 输入你的服务端口(比如3000)→ 选择「允许连接」→ 勾选「专用」(内部网络场景)→ 给规则命名(比如「Express服务端口放行」)→ 完成配置
验证服务是否正常运行
- 在服务器本地打开浏览器,访问
http://localhost:你的端口号,如果能正常返回响应,说明服务本身没问题;如果不行,检查npm start是否正常启动,有没有报错。 - 确保启动服务的命令行窗口没有关闭(新手可以先保持窗口打开测试,后续可以用PM2等工具让服务后台运行)
- 在服务器本地打开浏览器,访问
额外检查
- 确认Flutter设备和服务器在同一内部网段,用设备ping服务器IP,能ping通再测试请求。
- 如果项目有自定义路由,确保请求的路径正确(比如默认根路径
/是否有对应的接口处理)
内容的提问来源于stack exchange,提问作者TheMortiestMorty
相关产品推荐
相关产品推荐

