我一年以来一直在维护一个Discord机器人,几个月前,我对文件结构进行了一些更改,以清理它并使我更容易知道发生了什么。
事实是,每当我尝试请求位于机器人根目录下的文件夹中的文件(带有require时,有时它与"./"
一起使用,而有时它与"../"
一起使用
当前文件结构为:
----commands
-------commands.js(multiple files)
----images
-------halloween
----------images.png/jpg(multiple images)
----logs
-------bot.log
----modules
------logger.js
----settings
-------config.json
-emojis.json
-gifs.json
-index.js
按照上面的结构,例如,当我尝试在命令中请求一个万圣节图像时,对我来说合乎逻辑的事情是使用“ ../images/halloween/image.png”,但我必须使用“ ./images/halloween/image.png”,就像“ images”文件夹位于“ commands”文件夹中一样]
我想知道为什么会这样。看到一个错误消息说找不到文件仅是因为node.js决定这次的父目录是"./"
而不是"../"
],这真让我的大脑感到困惑
我有一年以来一直在维护Discord机器人,几个月前,我对文件结构进行了一些更改,以清理它并使我更容易知道发生了什么。问题是,...
假设您的命令文件正在进行文件系统调用(因为您正在从中访问图像),那么从中调用脚本的目录可能很重要。确保您正在使用path
实用程序来解析文件位置。有关更多详细信息,请参见NodeJS accessing file with relative path。