目前,我正在您可能知道的应用程序中开发一个项目 - 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.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”,它强烈建议您不能使用相对路径。