首页 > 解决方案 > 似乎无法附加到 .json 数组

问题描述

目前我正在尝试为我的不和谐机器人添加到黑名单数组中。读取数组工作正常,但每当我尝试附加到机器人节点时,都会以代码 1 退出。

我尝试了几种方法,但似乎没有一个真正有效。

const data = require('./data.json');
data.serverData.blackListedColors.append(randomRoleColor);

返回:

                        data.serverData.blackListedColors.append(randomRoleColor);
                                                          ^

TypeError: data.serverData.blackListedColors.append is not a function
    at Client.<anonymous> (C:\Users\mtutt\OneDrive\Documenten\DiscordKeyBot\bot.js:363:59)
    at Client.emit (events.js:209:13)
    at MessageCreateHandler.handle (C:\Users\mtutt\OneDrive\Documenten\DiscordKeyBot\node_modules\discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
    at WebSocketPacketManager.handle (C:\Users\mtutt\OneDrive\Documenten\DiscordKeyBot\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:105:65)
    at WebSocketConnection.onPacket (C:\Users\mtutt\OneDrive\Documenten\DiscordKeyBot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
    at WebSocketConnection.onMessage (C:\Users\mtutt\OneDrive\Documenten\DiscordKeyBot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
    at WebSocket.onMessage (C:\Users\mtutt\OneDrive\Documenten\DiscordKeyBot\node_modules\discord.js\node_modules\ws\lib\event-target.js:120:16)
    at WebSocket.emit (events.js:209:13)
    at Receiver.receiverOnMessage (C:\Users\mtutt\OneDrive\Documenten\DiscordKeyBot\node_modules\discord.js\node_modules\ws\lib\websocket.js:789:20)
    at Receiver.emit (events.js:209:13)

Process finished with exit code 1

我试过使用.parse.add但那些似乎也不起作用。

using.push似乎不会使其崩溃,但也不会将字符串添加到.json文件中。

编辑: 这是.json供参考的文件

{
  "serverData": {
    "muffinID": "[disocrdID]",
    "token": "[token]",
    "blackListedColors": []
}

标签: javascriptnode.jsjsonbotsdiscord

解决方案


require()由于节点需要缓存,您不能用于在机器人进程的生命周期内更改的数据。此外,仅修改data不会自动将其保存回文件中;您必须将其写回文件中。

写自己不​​是火箭手术,但你可能想研究一个为你做这件事的库——我还没有尝试过,但它看起来很有希望:https ://www.npmjs.com/package/json-持久对象


推荐阅读