Debian 9云VPS部署Node.js项目报错:Cannot find module './models/info'
解决Node.js部署Debian 9 VPS时"Cannot find module './models/info'"的问题
刚碰到过几乎一模一样的情况,给你梳理几个最可能的原因和对应的解决办法:
1. 文件名大小写不匹配(最常见原因)
Windows系统是大小写不敏感的,但Debian这类Linux系统对文件名大小写严格区分。你本地可能把文件命名成了Info.js或者INFO.js,代码里写require('./models/info')在本地能正常找到,但到了VPS上就会找不到对应文件。
检查&修复步骤:
- 登录VPS,进入项目的models目录:
cd /root/Server_files/models - 执行
ls命令查看文件,确认是否存在全小写的info.js - 如果实际文件名是
Info.js,要么把代码里的引用改成require('./models/Info'),要么把VPS上的文件名改成info.js(用命令:mv Info.js info.js)
2. 上传时遗漏了info.js文件
可能你在把项目传到VPS的时候,不小心漏掉了models/info.js这个文件,导致VPS上的项目目录里根本没有这个模块文件。
检查&修复步骤:
- 执行
ls /root/Server_files/models,确认目录里有info.js - 如果文件缺失,用你常用的工具(比如scp、FileZilla)把本地的
info.js上传到VPS的/root/Server_files/models目录下
3. 文件权限问题(较少见但值得排查)
如果文件确实存在,但Node.js没有读取权限,也会触发找不到模块的错误。
修复步骤:
- 给文件设置合适的读取权限:
chmod 644 /root/Server_files/models/info.js
4. Node.js版本差异(备选排查项)
Debian 9默认的Node.js版本可能比较旧(比如v6.x),如果你的本地Node.js版本远高于这个,可能存在一些模块解析的差异。不过这个不是触发该错误的首要原因,但可以顺便检查:
- 查看VPS的Node.js版本:
node -v - 如果版本过低,可以用nvm安装新版本的Node.js,避免其他潜在问题
按照上面的步骤排查,基本就能解决这个问题了!
内容的提问来源于stack exchange,提问作者merlinmarijn
相关产品推荐
相关产品推荐

