持久化指将内存中的数据保存在磁盘中,以便下一次程序启动时恢复之前的状态。

实现方式

持久化必然要借助操作系统提供的文件系统,也就是把数据保存在文件中。 打开 SQLite 的单文件看了一下,除了表里面的数据都是乱码,说明它使用自己规定的格式进行保存,也就是在二进制层面上进行的。 NodeJS 虽然也提供了这么做的接口,但是没有必要设计精巧的存储格式,因为毕竟只是玩玩而已。 最简单的方式是直接将数据库对象序列化,以字符串的形式存到文件中。 读取的时候将文件以 JSON 形式解析就好了。

对象的持久化

在把一个对象序列化之后,对象持有的方法会丢失,再恢复时也就不是原来的对象了。 为了解决这个问题,只好手动为每个对象编写了从 json 读取数据的方法。 将对象与数据一起存储会对持久化造成不便,如果这两者分开就没有什么问题了,对象只存储数据,其他操作用独立的函数来进行,这可能是之后要重构的方向。


Blog Comments powered by Isso.