首页 > 解决方案 > 编写 JSON 文件

问题描述

所以我正在写一个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")
        })

标签: botsdiscord.jsfs

解决方案


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

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

您也可以使用appendFilefileWrite异步执行此操作。还有一个很好的StackOverflow Question

编辑

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


推荐阅读