无法写入消息处理程序中的文件

Unable to write to file in message handler

我正在编写一个 Discord 机器人,它可以写入 glitch.com 上的本地文本文件。

当我使用 ready 事件处理程序时,我的程序能够很好地写入文件:

client.on('ready', () => {
  fs.appendFile('./log.txt', 'Hello\n', (err) => {
    if(err) throw err;
  });
});
//Writes to file

但是,当我尝试使用 message 事件处理程序写入同一文件时,没有任何反应:

client.on('message', (message) => {
  fs.appendFile('./log.txt', 'Hello\n', (err) => {
    if(err) throw err;
  });
});
//Does not write to file

我需要更改此文件的权限吗?还是从本地文件更改它?任何帮助将不胜感激。

使用 appendFileSync 而不是 appendFile 应该可以解决您的问题,因为 appendFileSync 更可靠并且产生错误的可能性更小。祝你好运!

我认为这样的东西可能有用,我没有时间测试它,但它使用的是 writeFile() method as opposed to the appendFile() 方法

client.on('message', (message) => {
 fs.writeFile('./log.txt', message, (err) => {
     if(err) throw err;
  });
});

假设您已经拥有本地文本文件,则无需制作新文件。所以你也可以使用 writeFile(),我唯一能看到的错误是它可能会刷新每条消息的文件,但你可能可以使用消息收集器修复它,它每说 100 条消息就更新文件。