写入 JSON 文件

Writing a JSON file

所以我正在写一个 json 文件,当我将 2 个用户写入一个文件时,用户 B 替换了用户 A 应该是:

{
    "user": {
        "user": "user1",
        "id": "id"
    },
    "user": {
        "user": "user2",
        "id": "id2"
    }
}

但它只是将 user1 替换为 user2。

代码:

    if(command === "add"){
        let mentionedUser = message.mentions.users.first()
        var user = mentionedUser.username
        var jsonData = {
            users:{
                user: user,
                id: mentionedUser.id
            }
        }
        fs.writeFileSync("./config.json", JSON.stringify(jsonData, null, 4), err => {
            if(err) throw err;
            message.channel.send("ID Pushed")
        })

fs.writeFileSync的默认模式是覆盖整个文件。您可以使用 appendFileSync or you set an option in fileWriteSync 附加新文本:

fs.writeFileSync('config.json', JSON.stringify(jsonData, null, 4), {flag: 'a'}, err => {...});
fs.appendFileSync('config.json', JSON.stringify(jsonData, null, 4), err => {...});

您也可以使用 appendFile or fileWrite. There is also a nice Whosebug Question 异步执行此操作。

编辑:

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