Cyclic部署NestJS API遇端口3000无响应错误求助
解决Cyclic部署NestJS API时「CYCLIC ERROR: No response from server on port 3000」问题
核心排查与解决方案
1. 修正NestJS端口监听绑定
检查main.ts的监听逻辑,必须绑定0.0.0.0而非localhost,否则Cyclic无法访问服务:
async function bootstrap() { const app = await NestFactory.create(AppModule); const port = process.env.PORT || 3000; await app.listen(port, '0.0.0.0'); console.log(`Server running on 0.0.0.0:${port}`); } bootstrap();
2. 确认启动脚本与构建流程
保证package.json的启动脚本指向正确的编译产物,若项目用Prisma,需添加前置生成命令:
{ "scripts": { "start": "prisma generate && node dist/main", "build": "nest build" } }
Cyclic会自动执行npm run build,需确保本地执行npm run build && npm start能正常启动服务。
3. 检查Cyclic平台配置
- 控制台「Output Directory」固定设为
dist(NestJS默认编译目录) - 无需硬编码端口,Cyclic会自动注入
PORT环境变量,硬编码易导致端口冲突 - 确认
DATABASE_URL等业务所需环境变量已在Cyclic控制台正确配置
4. 排查项目启动异常日志
查看Cyclic部署日志,重点关注:
- 依赖安装是否失败
- Prisma客户端生成/数据库连接是否报错
- NestJS服务启动时是否有未捕获的异常
针对你的olm-server项目的额外提示
从仓库结构看,项目依赖Prisma,若数据库连接失败或Prisma客户端未生成,会导致服务启动后无响应,务必在启动脚本中加入prisma generate,并确认数据库环境变量配置正确。
内容的提问来源于stack exchange,提问作者Giorgi Kutateladze
相关产品推荐
相关产品推荐

