如何将有关用户的信息存储在文件中,然后读取和修改它们

How to store info about a user in a file and then read and modify them

我正在尝试建立一个频道,用户可以在其中通过命令更新机器人消息。该通道将像这样工作:如果 X 发送 + Item,则机器人将 "Item" 添加到链接到用户的数组中,然后将其写入文件。为了构建消息,机器人读取文件并写入与用户相关的数组元素。我怎样才能使数组以某种方式链接到用户,比如通过 id,以便我可以读取它?

感谢帮助

如果您不知道,您可以通过 message.author.id 获取发件人的 ID,其中 messageMessage 对象。

您可以找到一些节点 API 来帮助您。

否则,您只需创建一个字典,将用户 ID 作为键值。你可以看看here or here.
(其中任何一个都可以。这也可以帮助:clickme!,或者您可以 google 了解更多。)

存储到文本文件中并维护数据要复杂得多。如果您能找到一些 API 可以为您简化流程,那就太好了。

但如果有其他选择,您可以将数据存储到文本文件中,就像字符串存储在程序中一样。 (查看有关如何存储和读取字符串的数据结构。)

基本上,假设您有 2 个用户,每个用户有 2 个元素。您在文本文件中的数据将如下所示:

user1-ID
element1
element2
NULL-VALUE
user2-ID
element1
element2
NULL-VALUE

基本上,每当您想从文本文件中读取时,只需告诉您的程序搜索相应的 UserID,然后向下读取元素,直到到达 NULL-VALUE。一旦它到达那里,您的程序就会停止读取它。

(当然你可以使用 NULL-VALUE 以外的其他东西,这只是一个例子。我建议让你的元素用括号括起来。因为有些用户可能会在命令参数中输入 NULL-VALUE,这会引起一些麻烦。)

我最终使用了 JSON 目标文件,并使用 list[id] 读取属性,因为该 id 是一个字符串。我这样设置文件:

{"id1" : ["element1", "element2"], "id2": ["element3"]}

这样我就可以读取文件中存储的数据并写入修改后的值,只需用fs模块写入对象即可