如何使用node.js在JSON中向数组添加字符串?

时间:2017-11-06 03:28:26

标签: javascript arrays json node.js discord

我有一个不和谐机器人,我希望有一个阵列,其中包含滥用音量和音乐命令的用户ID,这样我就可以拿走他们的能力并使用!nomusic等命令将其恢复。 !musicback,但我不知道如何在配置文件中添加或删除ids数组。我最好的猜测是使用fs并将成员的id推入数组,但我不知道我将如何做到这一点(我对node.js很新。特别是fs,很抱歉,如果这是一件非常容易的事,并且真的很愚蠢的问题。)

到目前为止,这是我已经走了多远(很多程序没有包括在内,因此更容易阅读)

function readNoMusicJSON() {
    return JSON.parse(fs.readFileSync("./nomusic.json"));
}

var badmusicusers = readNoMusicJSON();

function nomusicsfoyou(badmusicusers, userId) {
    return nomusic.concat([userId]);
}

function saveNoMusicFile(badmusicusers) {
    fs.writeFileSync("./nomusic.json");
}
bot.on('message', async message => {
//some code ommited due to lack of importance
var args = message.content.slice(config.prefix.length).trim().split(/ +/g);    
var command = args.shift().toLowerCase();
switch(command){
    case"music":
        if(badmusicusers.find(id=>id == message.author.id)) return;
        // more ommitted code that don't matter
        break;
    case "nomusic":
        let sadmusicboi = message.mentions.members.first();
        badmusicusers = nomusicsfoyou((badmusicusers, sadmusicboi.id));
        saveNoMusicFile(badmusicusers);
        break;
    }
})

1 个答案:

答案 0 :(得分:3)

假设您的config bannedUsers.json文件中有bannedUsers列表。

["user-id-1", "user-id-2"]

在程序启动时,您将文件读入变量:

function readBannedUsers() {
    return JSON.parse(fs.readFileSync("./bannedUsers.json"));
}

var bannedUsers = readBannedUser();

每当您想要禁止用户时:

function banUser(bannedUsers, userId) {
     return bannedUsers.concat([userId]);
}

function saveBannedUsers(bannedUsers) {
     fs.writeFileSync("./bannedUsers.json");
}

bannedUsers = banUser(bannedUsers, "user-3");
saveBannedUsers(bannedUsers);

这就是全部。