需求:不想使用数据库;只做简单的数据记录
一、最简单的读写方式
// 读取
const fs = require('fs')
const jsonData = json.parse(fs.readFileSync(文件路径))
console.log(jsonData)
// 写入
const newJsonData = {...}
fs.writeFileSync(文件路径,JSON.stringify(newJsonData))
缺点很明显;操作具体内容的时候很复杂,并且要把整个文件都读取到内存中(不推荐)
二、使用lowdb 库
安装: npm i lowdb@1.0.0 (1.0版本下载量最高,支持commonjs)
// 导入包
const low = require('lowdb');
const FileSync = require('lowdb/adapters/FileSync');
const adapter = new FileSync('db.json');
// 获取 db 对象
const db = low(adapter);
// 初始化数据,自己在json文件中写也可以不用初始化
db.defaults({posts:[],user:{}}).write();
// 获取单条数据 find里面传条件
db.get('posts').find({id:1});
// 写入数据
db.get('posts').push(...).write();
db.set("user.name", 'kongzhi').write();
// 获取数据
db.get('posts').value();
// 删除数据 remove里面传条件 返回被删除后的对象
const result = db.get('posts').remove({id:1}).write();
// 更新数据
db.get('posts').find({id:1}).assign({id:2}).write();