【问题标题】:DiscordJS: replace only specific part of JSONDiscordJS:仅替换 JSON 的特定部分
【发布时间】:2026-01-30 11:40:01
【问题描述】:

我正在 discord.JS 上创建一个机器人,它创建一个带有一些值的 JSON 数据库。 我该如何做,所以代码不会完全覆盖整个 JSON,而是编辑指定的对象?

if (message.content.startsWith("/requestdeposit")){
             
             let moneyrequest = message.content.split(" ");
                 
             moneyrequest.shift();
     
             moneyrequest = moneyrequest.join(" ");
     var num69 = moneyrequest;
             if(isNaN(num69)){
             
                 message.channel.send("You did not enter a valid number.")
                  }
                  else
                  {
                     
                     

                      requester = message.author.id;
                      
                      let link = require('./money.json')
                     var userid1 = "";
                     userid1 = message.author.id;
                     
                   link = {[userid1]: {
                          name: `${message.author.username}`,
                          balance: `${moneyrequest}`
                        }
                     }
                       
                      
                     const stringifiedrequest = JSON.stringify(link, null, 4,'\t');
                     
                     
                       

                     fs.writeFile('money.json', stringifiedrequest, (err) => {
                         if (err) {
                             throw err;
                         }
                         console.log("JSON data is saved.");
                     });
                 }
                  }

示例 JSON:

{
"427861168284106762": {
    "name": "woodendoors7",
    "balance": "1"
}}

我怎样才能做到这一点,当用户运行命令时,它只用他们的用户 ID 覆盖对象(替换“名称”和“余额”),但保留 JSON 的所有其他部分?

【问题讨论】:

    标签: javascript node.js json discord.js


    【解决方案1】:

    而不是用

    覆盖JSON对象
    link = {[userid1]: {
                          name: `${message.author.username}`,
                          balance: `${moneyrequest}`
                        }
                     }
    

    你可以分配它

    link[userid]: {...}
    

    【讨论】: