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

部署Express.js网站至Railway时遇模块找不到错误求助

问题原因及解决办法

常见原因

  • 文件名大小写不匹配:本地系统(Windows/macOS)默认不区分文件名大小写,但Railway使用Linux服务器,严格区分大小写。比如你本地写./models/product能找到Product.js,但Linux会直接报错找不到。
  • 模型文件未被提交到Git:可能你的.gitignore规则把models目录或product.js排除了,导致部署时文件没上传到Railway服务器。
  • 工作目录差异导致路径解析错误:本地运行时的工作目录和Railway启动项目时的工作目录不一致,相对路径解析出错。

对应解决办法

  • 统一路径与文件名大小写:检查models目录下的文件名(比如是product.js还是Product.js),然后把index.js里的引用路径改成完全一致的大小写,比如文件是Product.js就写const Product = require('./models/Product');。
  • 修复.gitignore并重新提交:打开项目根目录的.gitignore文件,确认没有包含models/或product.js这类规则。如果有,删除对应的行,然后执行以下命令重新提交推送:
    git add .
    git commit -m "fix: include model files in repo"
    git push
    
    之后Railway会重新拉取代码部署。
  • 使用绝对路径引用模块:修改index.js里的模块引用代码,用Node.js的path模块生成绝对路径,避免工作目录影响:
    const path = require('path');
    const Product = require(path.resolve(__dirname, './models/product'));
    
    __dirname会指向当前index.js所在的目录,path.resolve会生成可靠的绝对路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:24:25