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

时间:2019-01-16 20:08:46

标签: javascript node.js bots project discord

因此,目前,我正在开发您可能知道的应用程序中的一个项目-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)

任何有关修复方法的建议都将是不错的。此外,如果您想就我当前的文件格式与我联系,请随时与Discord @ I'mALittleTeapot#0001进行联系。谢谢。

1 个答案:

答案 0 :(得分:0)

根据discord.js(https://discord.js.org/#/docs/main/stable/class/DMChannel?scrollTo=send)的文档 (检查了textchannel 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确实支持您使用的语法,那么我会研究“ entire / path / to / file.jpg”,强烈建议您不能使用相对路径