UnhandledPromiseRejectionWarning:错误:ENOENT:没有这样的文件或目录,stat'/assets/level.png'

问题描述 投票:0回答:1

目前,我正在您可能知道的应用程序中开发一个项目 - Discord。我目前正在尝试编写一个机器人代码,并完成让它从本地文件源发送图像的任务。我的机器人由 Heroku 托管,这意味着所有文件都位于其所在的云本地,并且我上传的每个文件都保留在推送时所在的层次结构中。此外,我已经上传了我需要的所有文件,除了一件小事之外,所有代码都可以正常工作并且是最新的。我要发送的文件。

module.exports.run = async(bot, message, args) => {
    message.channel.send('', {files: ['../assets/level.png']});
};

这些代码行应该发送一个简单的灰色矩形 (png) 文件的图像。然而..事实并非如此。相反,我的控制台返回这些行:

2019-01-16T19:58:24.366174+00:00 app[worker.1]: (node:4) 
UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, stat '/assets/level.png'
2019-01-16T19:58:24.366478+00:00 app[worker.1]: (node:4) 
UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated 
either by throwing inside of an async function without a catch block, or by rejecting a 
promise which was not handled with .catch(). (rejection id: 1)

任何关于修复方案的建议都会很棒。

javascript node.js bots project discord
1个回答
0
投票

根据discord.js的文档(https://discord.js.org/#/docs/main/stable/class/DMChannel?scrollTo=send) (检查了文本通道channel.send(),它看起来是一样的)

这就是你调用该函数的方式:

// Send a local file
channel.send({
  files: [{
    attachment: 'entire/path/to/file.jpg',
    name: 'file.jpg'
  }]
})
  .then(console.log)
  .catch(console.error);

看起来您需要提供附件的路径和名称(名称是可选的)

不确定这一点,但如果channel.send确实支持您使用的语法,那么,我会研究“整个/path/to/file.jpg”,它强烈建议您不能使用相对路径

© www.soinside.com 2019 - 2024. All rights reserved.