为什么 Heroku 找不到我的电脑可以找到的文件夹?
Why can't Heroku find a folder my computer can?
当我使用 node index.js 时,我的 discord bot 在我的计算机上运行,但是当我在 heroku 终端中做同样的事情时,我收到以下错误,这很奇怪,因为 ./commands 是连接的文件夹github 它在我的电脑上运行良好。
node:internal/fs/utils:344
throw err;
^
Error: ENOENT: no such file or directory, scandir './commands'
at Object.readdirSync (node:fs:1390:3)
at Object.<anonymous> (/app/index.js:19:25)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47 {
errno: -2,
syscall: 'scandir',
code: 'ENOENT',
path: './commands'
这是因为您可能从较低的文件夹调用 Heroku 脚本 - fs
文件系统运行 relative to the current working directory 而不是相对于您调用的脚本。解决方案是使路径成为绝对路径:
fs.readdirSync(path.resolve(__dirname, './commands'))
当我使用 node index.js 时,我的 discord bot 在我的计算机上运行,但是当我在 heroku 终端中做同样的事情时,我收到以下错误,这很奇怪,因为 ./commands 是连接的文件夹github 它在我的电脑上运行良好。
node:internal/fs/utils:344
throw err;
^
Error: ENOENT: no such file or directory, scandir './commands'
at Object.readdirSync (node:fs:1390:3)
at Object.<anonymous> (/app/index.js:19:25)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47 {
errno: -2,
syscall: 'scandir',
code: 'ENOENT',
path: './commands'
这是因为您可能从较低的文件夹调用 Heroku 脚本 - fs
文件系统运行 relative to the current working directory 而不是相对于您调用的脚本。解决方案是使路径成为绝对路径:
fs.readdirSync(path.resolve(__dirname, './commands'))