因此,目前,我正在开发您可能知道的应用程序中的一个项目-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进行联系。谢谢。
答案 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”,强烈建议您不能使用相对路径。