Plesk部署Node.js应用遭遇require模块找不到错误求助
检查文件名/目录名大小写:Plesk服务器一般基于Linux环境,文件名严格区分大小写,而本地Windows/macOS默认不区分。确认
routes目录下的status.js文件名、目录名大小写和代码里的./routes/status完全匹配(比如别把Status.js写成status.js,或目录名Routes写成routes)。验证文件是否完整上传:登录Plesk文件管理器,直接查看
routes目录下是否存在status.js,对比本地文件的大小和内容,避免上传过程中漏传或文件损坏。如果有问题,重新上传整个routes目录。核对相对路径正确性:错误栈提示问题来自
upload_collection.js,检查这个文件里的模块引入路径是否正确。比如如果upload_collection.js不在项目根目录(和app.js同级),而是在子目录里,那引入routes/status的路径应该是../routes/status而非./routes/status,相对路径要根据文件所在位置调整。清理依赖缓存并重装:在Plesk的终端中执行以下命令,清除Node缓存并重新安装依赖:
npm cache clean --force rm -rf node_modules package-lock.json npm install执行完成后重启Node应用。
确认Plesk应用根目录设置:检查Plesk中Node.js应用的「根目录」配置,必须指向你的项目根目录(即包含app.js的目录)。如果根目录设错,相对路径的基准就会出错,导致找不到模块。
检查文件权限:确保服务器上
routes目录及其中的文件有足够的读取权限。在Plesk文件管理器中,将目录权限设为755,文件权限设为644,所有者设置为Web服务器运行用户(通常是www-data或apache)。
内容的提问来源于stack exchange,提问作者Víctor Martín

