Json文件从节点脚本中随机损坏

时间:2019-03-11 03:22:06

标签: node.js json discord fs discord.js

我正在制作一个discord机器人,该机器人将两个人排在一起进行游戏,它通过使他们的不和谐ID,队列状态和JSON文件中的对手来执行此操作。每个用户看起来像这样:

{
    "discordId": "296062947329966080",
    "dateAdded": "2019-03-11T02:34:01.303Z",
    "queueStatus": "notQueuing",
    "opponent": null
},

当一个人在一条命令中排队时,它将“ queueStatus”设置为Queuing,而当发现另一个人在Queuing中时,它将该人设置为对手并告诉两个用户他们是对手。问题是更改时随机会损坏JSON文件,并且这样的事情会发生在底部:

            "dateAdded": "2019-03-11T02:34:01.303Z",
            "queueStatus": "notQueuing",
            "opponent": null
        }
    ]
}537"
        }
    ]
}

我唯一的想法是,因为两个人同时执行此操作,同时将其写入文件并破坏了文件,fs.writeFileSync会对其进行修复,但是如果我使用fs.writeFileSync,整个不和谐的bot都会暂停并停止工作,直到完成编写为止,这不是一个非常实用的解决方案。

1 个答案:

答案 0 :(得分:1)

存储在JSON文件中的数据应迁移到fatal: 'heroku' does not appear to be a git repository fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 或其他数据库。来自多个作业/源的单个静态文件上的CRUD操作不是可伸缩的解决方案。将此数据存储迁移到数据库将解决这些暂停和停止。

通过freecodecamp.org在Youtube上观看此视频


但是,如果需要或仍然首选JSON文件,我建议使用MongoDB创建一个用于读取和写入的单个阻塞队列。