上传NodeJS Discord Bot至Pterodactyl主机时出现MODULE_NOT_FOUND错误
问题根因
你遇到的报错核心原因是Linux系统文件系统严格区分大小写,而你本地使用的Windows/macOS默认文件系统不区分大小写,所以本地运行正常,部署到Linux托管环境后触发报错。
你代码中引入路径写的是 ../database/models/blackListSchema,但报错显示系统正在查找 ../database/models/blacklistSchema,二者的 L 大小写不一致。
解决步骤
- 第一步:核对文件大小写
登录Pterodactyl面板进入文件管理,打开/database/models目录,确认你的Schema文件名称和你代码中require的字符串完全一致:
如果你代码写的是require('../database/models/blackListSchema'),那文件名必须精确为blackListSchema.js,大小写、拼写完全对应,不能有任何偏差。 - 第二步:排查文件后缀问题
确认目标文件后缀确实是.js,不要因为本地系统隐藏了已知后缀名,导致实际文件名为blackListSchema.js.txt或其他异常后缀。 - 第三步:验证路径有效性
如果前两步都没问题,可以在blacklist.js开头加入以下代码临时验证路径:
重启Bot后查看控制台输出,即可确认目标路径是否正确,文件是否真的存在于对应位置。const path = require('path') const fs = require('fs') const targetPath = path.join(__dirname, '../database/models/blackListSchema.js') console.log('目标文件路径:', targetPath) console.log('文件是否存在:', fs.existsSync(targetPath))
内容的提问来源于stack exchange,提问作者Joseph Gross
相关产品推荐
相关产品推荐

