Node.js 读取右目录,但输出它';怎么了?

Node.js 读取右目录,但输出它';怎么了?,node.js,discord.js,fs,Node.js,Discord.js,Fs,下面的代码[如下]位于基于“Reloaders”文件夹的.js文件中,我正在尝试访问“Commands”文件夹 但每次尝试都会出现错误: 错误:enoint:没有这样的文件或目录,scandir'../Commands' 代码 const categories=fs.readdirSync(“../Commands”); 树输出 C:。 +---解放党 |+---收藏 |+---命令 |+---事件 |+---处理器 |+---重新加载程序 |\---设置 完整代码 var fs=requi

下面的代码[如下]位于基于“Reloaders”文件夹的.js文件中,我正在尝试访问“Commands”文件夹

但每次尝试都会出现错误:

错误:enoint:没有这样的文件或目录,scandir'../Commands'

代码
const categories=fs.readdirSync(“../Commands”);
树输出
C:。
+---解放党
|+---收藏
|+---命令
|+---事件
|+---处理器
|+---重新加载程序
|\---设置
完整代码
var fs=require(“fs”);
const chokidar=要求(“chokidar”);
const{basename}=require(“路径”);
const Logger=require(“../Handlers/LogHandler”);
const{commands,alias}=require(“../Collectors/DiscordCollectors”)
const categories=fs.readdirSync(“../Commands”);
const CommandReloader=async()=>{
类别。forEach(类别=>{
chokidar.watch(`../Commands/${category}`{
等待WriteFinish:对
}).on(“更改”,(文件)=>{
const commandName=basename(文件“.js”)
删除require.cache[require.resolve(process.cwd()+`/lib/Commands/${category}/${commandName}.js`]);
删除require.cache[require.resolve(process.cwd()+`/lib/Commands/${category}/${commandName}.js`]);
delete(process.cwd()+`/lib/commands/${category}/${commandName}.js`);
Logger.log(“命令重新加载程序,`Deleted${commandName}from${category}.`);
console.log(commands.get(commandName))
const props=require(process.cwd()+`/lib/Commands/${category}/${commandName}.js`);
commands.set(commandName,props);
props.help.alias.forEach(别名=>{
别名.set(别名、命令名);
});
Logger.log(“命令重新加载程序”,从${category}.`重新加载${commandName});
});
});
};
module.exports.start=CommandReloader;
缓存问题
const commandName=basename(文件“.js”)
删除require.cache[require.resolve(`${uuu dirname}/./Commands/${category}/${commandName}.js`]);
commands.delete(`${uu dirname}/./commands/${category}/${commandName}.js`);
console.log(commands.get(commandName))
Logger.log(“命令重新加载程序,`Deleted${commandName}from${category}.`);
缓存问题的输出:

[24/10/2020 22:10:03][Command Loader]|从General加载lol。
[24/10/2020 22:10:06][Command Reloader]|从管理员中删除了lol2。
{
运行:[函数],
帮助:{
名字:“lol”,
别名:['l','o','l'],
描述:'Lol',
用法:'(命令名)',
类别:“管理员”
}
}
[24/10/2020 22:10:06][Command Reloader]|从管理员处重新加载lol2。

路径需要相对于工作目录,而不是.js文件。通过像
`${uu dirname}/./Commands`/code>那样编写,可以使其相对于当前文件。问题是,整个代码如下所示:[编辑的问题]@mpen,只有在重新加载程序中存在Commands文件夹时才能工作;那是从测试那个理论开始的。那没有意义。如果代码在
重载器
目录中,那么
\uu dirname
就是
C:/lib/Reloaders
,因此
${\uuu dirname}/.
向上一个目录,即
C:/lib/
,所以完整的内容应该是
C:/lib/Commands
(或者实际上是
C:/lib/Reloaders/./Commands
,但这是一样的)