我如何让我的机器人在 .JSON 文件 discord.js 中写入多行 [重复]

Posted

技术标签:

【中文标题】我如何让我的机器人在 .JSON 文件 discord.js 中写入多行 [重复]【英文标题】:How would I have my bot write multiple lines in a .JSON file discord.js [duplicate] 【发布时间】:2020-10-22 11:46:50 【问题描述】:

这是我的代码:

const Discord = require('discord.js');
const client = new Discord.Client();
const fs = require('fs');
client.msgs = require ('./archives.json')

client.once('ready', () => 
    console.log('Hi!')
)
client.on("message", async message => 
if (message.content.startsWith ("*archive")) 
    editedmessage = message.content.slice (8);

    client.msgs [message.author.username] = 
        message: editedmessage
    

    fs.writeFileSync ("./archives.json", JSON.stringify (client.msgs, null, 4,
       message.channel.send("Message archived")
    ));
)

我的目标是让机器人从同一个人那里写入多个项目,而不是覆盖它。我该怎么做呢?对不起,如果我的代码看起来很乱或什么的。

【问题讨论】:

【参考方案1】:
    使用fs.open() 打开一个文件。这会给你一个文件句柄,你可以给它一个附加a的选项。 使用您打开的文件句柄,使用fs.write() 反复使用它。 确保您只运行了 1 个节点进程来执行此操作。如果您同时打开应用程序的多个实例,文件可能会损坏。

您可能想查看 Node.js fs promises API。使用 async/await 与回调来编写这个更容易:

https://nodejs.org/dist/latest-v14.x/docs/api/fs.html#fs_fs_promises_api

【讨论】:

以上是关于我如何让我的机器人在 .JSON 文件 discord.js 中写入多行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu安装docker ee 遇到问题找不到安装源 disco Release

如何删除我的 json 文件机器人框架中的方括号?

如何让我的命令在 Discord.Net 中工作

如何改进我的队列系统 - Discord.py

如何让我的不和谐机器人响应没有前缀的消息

如何让我的机器人消息响应特定频道中的命令