基于nodejs,通过操作json文件实现的迷你数据库
可直接查看或运行demo.js
git clone http://****
cd json-database
node demo.js
const Database = require('./index.js');
const DB = new Database();
-
定义表名和模版
// 定义表名和模版 const tableName = 'cat'; co 62C6 nst tableTemplate = { "index": 0, "name": '', "age": 0, "sex": '' }
-
创建表
创建表并向其中添加一条数据。
const table = await DB.addTable(tableName, tableTemplate); const record = { "index": 0, "name": 'tom', "age": 8, "sex": 'male' }; // 向表中添加一条数据 const res = await table.add(record);
注意
:需要在async
函数中才可以使用await
语句。也可以使用promise操作。
// 创建表 DB.addTable(tableName, tableTemplate).then((table)=>{ const record = { "index": 0, "name": 'tom', "age": 8, "sex": 'male' }; // 向表中添加一条数据 table.add(record).then((res)=>{ console.log(res); }).catch(err=>console.log(err)); }).catch((err)=>{ console.log(err); });
-
add() 添加数据
当传入一个对象时,add()方法默认为添加一条数据,此时返回值为添加到数据库后增加的那条记录的一个对象。
const resObj = await table.add(record);
当传入一个数组时,add()方法认为同时添加多条数据,返回值为添加到数据库后增加的所有记录的一个数组。
const resArr = await table.add([record1, record2, record3]);
-
del() 删除数据
删除操作只接收一个对象作为参数,对象是搜索条件,返回值是所有被删除的记录,如果未匹配到数据,则返回空数组。
// 删除所有 index 属性为 0 的记录,返回存有对象的数组 const resArr = await table.del({index: 0}); // 删除所有 id 属性为 0 的记录,没找到,返回空数组。 const resArr = await table.del({id: 0});
-
update() 修改数据
修改操作有两个参数,两个参数都是对象,第一个对象是搜索条件,第二个对象包含了要修改的属性和值。
找到满足条件的记录就返回存放所有被修改后记录的数组,找不到则返回空数组。// 找到所有 index 属性为 0 的记录,修改它们的 age 属性值为 9 const resArr = await table.update({index: 0}, {age: 9});
-
search() 查找数据
查找操作只接收一个对象作为参数,对象是搜索条件。
找到满足条件的记录就返回存放所有满足条件的记录的数组,找不到则返回空数组。
注意如果传空对象则返回存放所有数据的数组。// 找到所有 index 属性为 0 的记录,修改它们的 age 属性值为 9 const resArr = await table.update({index: 0}, {age: 9});