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

时间:2018-08-01 00:53:15

标签: node.js fs discord.js

我正在编码一个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

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

2 个答案:

答案 0 :(得分:0)

使用appendFileSync代替appendFile应该可以解决您的问题,因为appendFileSync更可靠,并且出错的机会更少。祝你好运!

答案 1 :(得分:0)

我认为类似的方法可能有用,我没有时间对其进行测试,但是它使用的是writeFile()方法,而不是appendFile()方法

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

假设您已经拥有本地文本文件,则无需创建新文件。因此,您也可以使用writeFile(),这是我唯一看到的问题,它可以刷新每条消息的文件,但是您可以使用消息收集器来解决,该消息收集器每说100条消息就更新一次。 / p>