我正在制作一个 Discord 机器人,我希望它在特定事件中发送图片(这无关紧要)。我面临一个奇怪的问题:每当我尝试使用 Canvas.createCanvas(x,y) 我的 Node 项目退出时,日志中没有任何错误(因为我通过批处理使用它,它只是重新启动并打印“就绪”行)。我认为这里的代码无关紧要,因为它只是无法执行 createCanvas。
我已经尝试在每一行添加console.log('line N') 文本,并且从我的测试中它只出现在第2 行。所以第3 行(createCanvas)没有被处理。
client.on('guildMemberAdd', async member => { //canvas IS defined earlier
const channel = 'channel id';
if (!channel) return;
const canvas = createCanvas(600, 600);
const ctx = canvas.getContext('2d');
const background = await loadImage('./images/welcome.png');
ctx.drawImage(background, 0, 0, canvas.width, canvas.height);
ctx.strokeStyle = '#676767';
ctx.strokeRect(0, 0, canvas.width, canvas.height);
ctx.beginPath();
ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
ctx.closePath();
ctx.clip();
const { body: buffer } = await snekfetch.get(member.user.displayAvatarURL);
const avatar = await loadImage(buffer);
ctx.drawImage(avatar, 25, 25, 200, 200);
const attachment = new Discord.Attachment(canvas.toBuffer(), 'welcome-image.png');
channel.send(attachment);
});
我希望它实际创建画布并执行操作,但它只是重新启动机器人。这里有什么帮助吗?