【问题标题】:json.push is not a function [closed]json.push 不是一个函数[关闭]
【发布时间】:2021-06-30 20:01:47
【问题描述】:

我正在尝试制作一个命令命令,允许作者为其服务器设置命令, 这是为了更新一个 json 文件而不是覆盖它, 我正在使用 node.js 和 discord.js

const fs = require('fs')
module.exports = {
    name: 'setsuggest',
    execute(client, message, args, discord, cmd){
        const channelid = args[0]
        const serverid = message.guild.id
        
    
        fs.readFile('suggest.json', function (err, JsonData) {
            var json = JSON.parse(JsonData)
            let data = { 
                [serverid]: channelid 
            };
            json.push(data)
            fs.writeFile('suggest.json', JSON.stringify(json), function (err) {
                if (err) throw err;
                console.log('Updated')
            })
        })
        
    }
}

我做错了什么?

【问题讨论】:

标签: javascript node.js discord.js


【解决方案1】:

如果json 是一个对象,从您的用法看来,您可以使用spread 运算符来填充一个新对象,其中包含已解析对象中的所有属性,并将serverid 中的属性添加到它:

var json = {...JSON.parse(JsonData), [serverid]: channelid};

否则你总是可以直接在解析的对象中分配属性:

var json = JSON.parse(JsonData);
json[serverid] = channelid;

【讨论】:

    猜你喜欢
    • 2020-09-25
    • 2020-06-24
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多