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

部署AdonisJS v6到Render时遭遇EADDRNOTAVAIL错误求助

解决AdonisJS API部署到Render时的EADDRNOTAVAIL错误

以下是针对问题的具体解决步骤:

1. 修正服务器绑定配置

报错EADDRNOTAVAIL的核心原因是应用尝试绑定到特定IP(216.24.57.252),而Render平台不允许应用绑定固定IP,必须监听0.0.0.0并使用平台提供的动态端口。

  • 打开AdonisJS项目的服务器启动文件(通常是server.ts或构建后的build/bin/server.js),找到监听地址的代码:
    // 错误写法
    app.listen('216.24.57.252', 10000)
    
  • 修改为:
    // 正确写法
    const port = process.env.PORT || 3333
    app.listen('0.0.0.0', port)
    

2. 调整Render部署配置

不要本地build后推送,让Render在服务器端完成构建流程,避免路径和依赖不一致问题:

  • 根目录:保留默认的项目根目录(不要设置为build)
  • 构建命令:改为npm install && npm run build
  • 启动命令:确保指向构建后的启动文件,比如node build/bin/server.js(对应package.json中start脚本可设为"start": "node build/bin/server.js")

3. 校验环境变量配置

  • 确保Render的环境变量中存在PORT,Render会自动分配该变量,不要手动指定固定端口(如10000)
  • 核对MySQL相关环境变量:DB_HOST、DB_PORT、DB_USER、DB_PASSWORD、DB_DATABASE必须与Render提供的MySQL实例信息完全匹配
  • 确认APP_KEY等AdonisJS核心环境变量已正确设置,缺失会导致启动异常

4. 排查未捕获异常

如果调整后仍出现未捕获异常,查看Render的完整启动日志:

  • 检查是否有配置文件路径错误(比如构建后配置文件未被正确复制到build目录)
  • 确认所有依赖都已正确安装,避免本地依赖与服务器环境版本冲突
  • 可以在启动命令中添加环境变量加载逻辑,比如使用node -r dotenv/config build/bin/server.js(如果项目依赖dotenv)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:41:01