Javascript 财政司司长';找不到我的.mp3文件(node.js和discord.js)

Javascript 财政司司长';找不到我的.mp3文件(node.js和discord.js),javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我正在尝试生成一个_soundboard/_sb命令,并尝试检查.mp3文件是否存在,但由于任何原因它都无法工作。 我希望有人能帮我 const Discord=require('Discord.js'); 常数fs=要求('fs'); module.exports.run=(客户端、消息、参数)=>{ 如果(message.author.id!=“20167915712499104”){ message.channel.send(`Nope这是一个测试命令!`) 返回; }; 如果(!mes

我正在尝试生成一个_soundboard/_sb命令,并尝试检查.mp3文件是否存在,但由于任何原因它都无法工作。 我希望有人能帮我

const Discord=require('Discord.js');
常数fs=要求('fs');
module.exports.run=(客户端、消息、参数)=>{
如果(message.author.id!=“20167915712499104”){
message.channel.send(`Nope这是一个测试命令!`)
返回;
};
如果(!message.member.voiceChannel){
message.channel.send(`您需要在语音频道中才能执行此操作!`)
返回;
};
让声音=args[0]+“.mp3”;
if(fs.exists(`./sounds/${sound}`,函数(exists){})){
让vc=message.member.voiceChannel
vc.join().then(连接=>{
const dispatcher=connection.playFile(`./sounds/${sound}`);
message.channel.send(`playing:${sound}`)。然后(m=>m.delete(10000))
dispatcher.on('end',()=>{
vc.离开();
})
返回;
});
}
message.channel.send(`声音“${sound}”不存在!`)
};
module.exports.help={
名称:“音板”,
名字2:“某人”

};您必须了解在javascript中异步和连续是如何工作的。您误用了
fs.exists
。然后
。问题不是没有找到文件,而是控制流有缺陷。您可以使用
fs.existsSync
简化第一个部分,但是您仍然需要处理
Promise.then
部分。在回调中写入return不会从外部函数返回。我建议您改用
async/await

!修正

我刚刚添加了模块路径,它更易于使用。
还有f。在我尝试了一点之后,这个方法也起了作用。

try sound=`${args[0]}.mp3`。args[0]可能有空间?
fs.exsits
已删除,您可能还应该使用instead,
exists
是异步的,并接受回调。理想情况下,
if
条件应该在
fs.exists
内部,而不是外部。当前,您对它的回调为空。sound=
“${args[0]}.mp3”
${args[0]}.mp3
将不起作用:/您可能应该使用绝对路径,而不是相对路径。使用
absolutePath=path.join(\uu dirname,relativePath)
很容易做到这一点。我现在尝试了一些,现在做得很好。。。我从来没有真正使用过fs。。。