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

Node.js应用本地正常,部署至IBM Code Engine后路由模块找不到报错

Node.js部署至IBM Code Engine后找不到routes/index.js模块的问题

问题详情

我们的Node.js应用包含loggingRoutes.js、commonRoutes.js、health-route.js以及routes目录下的index.js。本地运行完全正常,可通过loggingRoute收发消息,所有路由表现符合预期,但部署到IBM Code Engine云环境后出现以下问题:

  • 应用状态显示健康且运行中,但无法通过loggingRoute收发消息
  • 启动日志抛出模块找不到错误:

Apr 8 17:15:19 Error: Cannot find module './routes/index'
Require stack:

  • /workspace/source/app.js
  • /workspace/source/bin/www

本地确实存在routes/index.js文件,推测问题出在部署环节的文件解析上,比如大小写敏感、Docker上下文缺失文件或构建配置错误。

排查与解决方向

1. 核对文件名大小写

IBM Code Engine基于Linux环境,大小写敏感;而Windows/macOS默认大小写不敏感。请确认:

  • 代码中引用./routes/index的路径大小写,是否和实际文件名完全匹配(比如本地是Routes/Index.js但代码写的是./routes/index)
  • 检查Git仓库中该文件的实际大小写,有时候本地显示小写,但Git存储的是大写,部署到Linux就会找不到。

2. 检查Docker构建上下文与忽略规则

  • 确认Dockerfile所在目录包含routes文件夹,构建命令指定的上下文路径正确
  • 查看.dockerignore文件,是否误将routes目录或index.js排除,导致构建镜像时未打包该文件

3. 验证模块引用路径

打开app.js检查引用代码:

// 确认路径是否正确,有没有写错层级或大小写
const routes = require('./routes/index');

如果使用ES模块(import语法),同样要确认路径正确性,部分环境可能需要显式添加.js后缀。

4. 查看IBM Code Engine构建日志

登录IBM Code Engine控制台,查看应用的构建日志,确认构建过程中是否正确复制了routes目录下的所有文件。如果构建步骤包含文件拷贝操作,检查是否遗漏了index.js。

5. 本地模拟Linux环境测试

用Docker在本地构建镜像并运行,模拟Linux环境,看是否会出现同样的错误,快速定位是代码/配置问题还是部署平台的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:48:19