代码之家  ›  专栏  ›  技术社区  ›  rileyhopkins

channel.createWebhook导致“没有这样的文件或目录”错误

  •  0
  • rileyhopkins  · 技术社区  · 10 月前

    我正在Discord中创建一个机器人。JS v14,我试图制作一个简单的modmail机器人,但在尝试创建webhook时,我遇到了一个非常奇怪的错误,看起来它与创建webhooks没有任何关系,但当我删除该函数时,它完全正常工作。

    我尝试了这个函数的所有组合,因为这是创建Webhook的唯一方法

    const webhook = await channel.createWebhook({
        name: `${message.author.name} (${message.author.id})`,
        avatar: `${message.author.avatar}`,
    });
    

    我经常收到的错误是:

    Error: ENOENT: no such file or directory, stat 'C:\Users\riley\Documents\GitHub\advanced-modmail\c43c7fdd43c8315ddf7a816a1f25a85c'
    Emitted 'error' event on Client instance at:
        at emitUnhandledRejectionOrErr (node:events:397:10)
        at process.processTicksAndRejections (node:internal/process/task_queues:84:21) {
      errno: -4058,
      code: 'ENOENT',
      syscall: 'stat',
      path: 'C:\\Users\\riley\\Documents\\GitHub\\advanced-modmail\\c43c7fdd43c8315ddf7a816a1f25a85c'
    }
    
    

    结尾的随机胡言乱语每次都会发生变化

    1 回复  |  直到 10 月前
        1
  •  0
  •   Prabhat    10 月前

    您面临此错误是因为机器人试图为不存在的webhook虚拟角色使用文件路径。当您传递message.author.avatar时,它可能会排除文件路径而不是URL。

    为了克服这个问题,你可以传递化身的URL。 遵循以下代码片段:

    const webhook = await channel.createWebhook({
        name: `${message.author.username} (${message.author.id})`,
        avatar: message.author.displayAvatarURL({ format: 'png' }),
    });