lowdb 中serialize unserialize

  • serialize/deserialize: 文件被写之前和读之后的操作。
  • 一段代码来解析
const low = require('lowdb');
const FileSync = require('lowdb/adapters/FileSync');

const adapter = new FileSync('./db.json', {
  serialize: (data) => console.log('serialize',data),// 注意这里是特意弄了console.log 不是JSON.stringity(data)
  deserialize: (data) => console.log('unserialize',data)// 注意:这里不是 JSON.parse(data)
});
const db = low(adapter);

db.defaults({posts: [], user: {}, count: 30 }).write();

那么在命令行中运行下,
第一次被写入之前 serialize 打印 为 {} 空对象。
然后就执行 db.defaults 操作就会把对应的数据写入到 db.json 文件中,
然后我们就会执行 deserialize 操作对文件进行读取,
然后在命令行中会打印 { posts: [], user: {}, count: 30 }。

打印完成后,我们没有做任何操作后,最后我们再来查看下 db.json文件内容变成了 undefined.

因此我们可以判定 serialize 和 deserialize 这两个操作完成后,他们也会对文件进行写入操作。

如果没有值被写入或操作的话,那么文件内容就变为undefined。
文件变为undefined后,我们再执行上面的代码,可以看到 db.defaults({posts: [], user: {}, count: 30 }).write(); 这句代码是不会被写入的。

那么我们可以猜想的到,这句代码的含义是会判断该文件 有没有内容,如果没有内容的话文件数据才会被写入,否则的话就不会执行任何操作。

我们可以再把 db.json 文件内容全部删除掉,我们再运行下 node app.js 命令后,可以看到这个时候 数据才会被写入进去。

  • serialize/deserialize: 文件被写之前和读之后的操作。
拆分:
serialize 文件写入前操作
unserizlize 文件写入后操作---
以上是博客的原文理解,看着比较乱

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...