Bots 编写JSON文件

Bots 编写JSON文件,bots,discord.js,fs,Bots,Discord.js,Fs,因此,我正在编写一个json文件,当我向一个文件中写入2个用户时,用户B将替换用户a 应该是: { "user": { "user": "user1", "id": "id" }, "user": { "user": "user2", "id

因此,我正在编写一个json文件,当我向一个文件中写入2个用户时,用户B将替换用户a 应该是:

{
    "user": {
        "user": "user1",
        "id": "id"
    },
    "user": {
        "user": "user2",
        "id": "id2"
    }
}
但它只是将user1替换为user2

代码:

if(命令==“添加”){
let sinetiedUser=message.sinetions.users.first()
var user=referenceduser.username
var jsonData={
用户:{
用户:用户,,
id:referenceduser.id
}
}
fs.writeFileSync(“./config.json”,json.stringify(jsonData,null,4),err=>{
如果(错误)抛出错误;
message.channel.send(“推送ID”)
})

fs.writeFileSync的默认模式是覆盖整个文件。您可以使用或在中设置选项来附加新文本:

fs.writeFileSync('config.json',json.stringify(jsonData,null,4),{flag:'a'},err=>{…});
appendFileSync('config.json',json.stringify(jsonData,null,4),err=>{…});
您也可以使用或异步执行。还有一个很好的解决方案

编辑


您还可以导入文件。然后您可以创建对象并将其附加到数据结构。最后,您可以将结果写回文件。

您不能有两个同名的键。请使用用户数组。这是什么意思?我的意思是,通过使用相同的名称,即
user
,您可以覆盖旧值,而不是ad正在定义一个新的。@user6528273那么我如何使它覆盖它?使用userscold数组我只做“id”:{“id”:“id1”,“id”:“id2”}?你是什么意思?你打算用它做什么?你可以简单地将它写入文件。基本上我有*add命令,所以当我运行它时,例如。*add Nicholas,它会将他的id添加到JSON文件中,如果我想再次运行同一个命令*add Whirls,它会将他的id替换为Mine,但用户的名称是相同的?不是,它会替换e用户也是如此。