javascript - 似乎无法附加到 .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": []
}
解决方案
require()
由于节点需要缓存,您不能用于在机器人进程的生命周期内更改的数据。此外,仅修改data
不会自动将其保存回文件中;您必须将其写回文件中。
写自己不是火箭手术,但你可能想研究一个为你做这件事的库——我还没有尝试过,但它看起来很有希望:https ://www.npmjs.com/package/json-持久对象