我正在尝试为使用discordjs编写的Discord机器人构建图形界面。
但是,我在发送图像时遇到问题。
这是我的代码的一部分,负责向用户发送消息:
utilsateur.createDM().then(channeltemp => {
let attachment = new Discord.MessageAttachment('./image.png');
channelDM = channeltemp;
channelDM.send("message", attachment);
});
图像“image.png”与脚本位于同一文件夹中。我一直在nodejs上运行脚本,没有任何问题,但是,当我尝试通过我的 Electron 应用程序的html页面运行脚本时,出现此错误:Uncaught (in promise) TypeError [REQ_RESOURCE_TYPE]: The resource must be a string, Buffer or a valid file stream.
我认为这与路径无关,因为我尝试更改路径(绝对路径,相对路径...)没有成功,而且我可以在 Electron 应用程序的Excel中访问某些数据。有人知道如何解决我的问题吗?
如果我对技术术语(我是初学者)犯了一些错误,或者甚至因为英语不是我的母语而在语法上的错误,我感到很抱歉。
感谢你的帮助 ! :)
最佳答案
我不太确定问题出在哪里,要么在attachment
的声明上,要么在channelDm.send
的声明上。但是,根据我最近与Discord服务器中的一些人进行的讨论,这可能是由于未给出本地数据的完整路径引起的,在您的情况下,您给出的是./image.png
的相对路径,并假设错误位于attachment
的声明。
如果您使用的是NodeJS,则可能要尝试将完整的图像路径放在MessageAttachment
构造函数的第一个参数上。
const path = require('path');
const fileName = 'image.png';
utilsateur.createDM().then(channeltemp => {
let attachment = new Discord.MessageAttachment(path.join(__dirname, fileName));
channelDM = channeltemp;
channelDM.send("message", attachment);
});
__dirname
是从NodeJS documentation引用的:
<string>
The directory name of the current module. This is the same as the path.dirname() of the __filename.
我希望这都能回答问题并解决您的问题。如果没有,我必须提前道歉,我也是一个初学者,目前从Discord.py迁移后才开始使用DiscordJS。
关于image - 无法通过 Electron 应用程序在Discordjs上发送附加到消息的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62747864/