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

如何修复升级Win11后React+Node项目出现的ERR_SOCKET_BAD_PORT错误

问题排查与解决步骤

首先从报错栈可以直接定位根因:错误是node-postgres(pg)库连接PostgreSQL数据库时,读取到的端口值为NaN导致,和前端recipe-cards.js代码无关。你测试的/test接口没有操作数据库,所以可以正常返回,只有涉及数据库查询的接口才会触发该错误。

排查步骤

  • 第一步:检查pg连接配置文件poolConfig.js的端口设置
    你大概率是用了环境变量读取PG端口,升级Windows 11后可能出现环境变量丢失、变量值被篡改的问题:
    1. 查看项目根目录的.env文件,确认PGPORT(或你自定义的端口变量)的值为合法数字,一般Postgres默认端口为5432
    2. 查看poolConfig.js中端口赋值逻辑,是否存在类型转换错误,比如:
      // 错误写法:如果process.env.PGPORT为空,parseInt会返回NaN
      port: parseInt(process.env.PGPORT)
      // 正确写法:加兜底默认值
      port: parseInt(process.env.PGPORT) || 5432
      
  • 第二步:硬编码端口测试
    临时将poolConfig.js中的端口配置写死为你实际的Postgres端口,跳过环境变量读取,重启nodemon后调用接口测试是否正常。
  • 第三步:检查Node版本与pg依赖兼容性
    你的package.json中限定了Node版本为11.x,升级Windows 11后可能本地Node版本发生了变化:
    1. 终端执行node -v查看当前Node版本,若和要求的11.x不一致,建议切换到对应版本,或者将pg依赖升级到最新稳定版
    2. 可删除node_modules文件夹和package-lock.json文件,重新执行npm install重装依赖排查兼容问题
  • 第四步:验证Postgres服务状态
    1. 打开Windows服务列表,确认PostgreSQL服务处于运行状态
    2. 终端执行netstat -ano | findstr 5432(将5432替换为你的PG端口),确认端口处于监听状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:15:07