GCP部署Node.js应用报Cannot find module '../models/postModel'求助
GCP部署Node.js项目找不到postModel模块排查方案
- 文件名大小写校验
这是跨平台模块找不到问题的最常见诱因:Windows、macOS默认文件系统大小写不敏感,文件名拼写正确但大小写不对也能正常加载;而GCP Node.js运行环境为Linux系统,大小写完全严格匹配。
请对比你代码中引用的../models/postModel和实际models目录下的文件命名是否完全一致:你其余模型引用均为大写开头(EventModel/CategoryModel),大概率post模型实际文件名为PostModel.js,和你写的小写开头postModel不匹配,修改引用语句和实际文件名完全一致即可解决。 - 检查部署文件忽略规则
查看项目根目录下的.gitignore或.gcloudignore文件,是否存在过滤models目录、postModel相关文件的规则(比如误写*.js过滤规则,或post*类通配符规则),导致部署时postModel文件没有上传到GCP运行环境。
你可以在defaultController.js开头加入如下代码,部署后查看日志确认文件是否存在:const fs = require('fs') const path = require('path') console.log('models目录文件列表:', fs.readdirSync(path.join(__dirname, '../models'))) - 核对项目目录结构
确认本地项目目录结构和GCP部署后的结构完全一致:GCP运行时代码根目录为/workspace,请保证controllers、models两个目录均直接放在项目根目录下,没有嵌套在其他子目录中。
内容的提问来源于stack exchange,提问作者Vicious
相关产品推荐
相关产品推荐

