🐬 Niodb
这是最简单的高性能本地 JSON 数据库。
安装
$ npm i niodb --save
快速示例
以下代码在空的.json文件example_data.json上创建了一个Nio数据库,并添加了一些键值对。
import { Nio } from 'niodb' // 或者 const { Nio } = require('niodb')const db = await new Nio('example_data.json')db.name = 'NioDB'db.message = 'Hello NioDB!'db.users = {count: 100}db.users.count++
运行此代码后的example_data.json文件将是:
{"name": "NioDB","message": "Hello NioDB!","users": {"count": 101}}
开始使用
设置/获取键的值
在数据库中设置一个键以保存一个值,就像给一个JavaScript对象赋值一样简单:
import { Nio } from 'niodb'const db = await new Nio()db.key = 'value'
如果定义了filepath,对数据的更改将异步且原子地存储在磁盘上。
获取一个键的值也非常简单:
console.log(db.key)
🌟 只需将Nio实例视为一个普通的JavaScript对象。
包装方法
或者,您可以使用包装方法$set和$get来做同样的事情:
db.$set(key, value)db.$get(key)
选择权在你。
删除/检查键是否存在
就像在JavaScript对象中删除和检查键一样:
delete db.keyconsole.log(key in db)
包装方法
db.$delete(key)db.$exists(key)
API
Nio
new Nio(filepath, config):
每个Nio实例都是绑定到一个.json文件的数据库:
const database = await new Nio(filepath, config);
文件路径
如果filepath是一个字符串,new Nio(filepath)将返回一个Promise对象,该对象将返回一个Nio实例,因此必须使用await来获取实例。
如果filepath未定义,它将返回一个Nio实例,因此不需要await。然而,为了一致性,当初始化数据库时,您应该总是使用await。
配置
config是可选的,它应该是一个对象。
所有选项包括:
await new Nio(filepath, {// 当磁盘上的.json文件已更新时调用此方法transactionUpdated: () => {}})
包装方法
所有包装方法包括:
$set(key, value): 设置键的值。将值设置为undefined将导致TypeError。$get(key): 获取键的值。$delete(key): 删除键。$exists(key): 返回键是否存在。$randomKey(): 返回一个随机键。$rename(key, newKey): 将键重命名为newKey,如果新键已经存在,则替换它。$type(key): 返回键中存储的值的数据类型。可能的返回值包括:array,object,null,number,string,boolean, 和undefined。
链式调用
您可以将包装方法链接在一起:
const db = await new Nio()db.content = {content1: 'hello',content2: 'this is NioDB',content3: 'you will like it'}db.content.$delete('content1').$rename('content2', 'introduction').$set('content3', true)console.log(db)
您将得到:
{content: {content3: true,introduction: 'this is NioDB'}}
错误处理
import { DatabaseError } from 'niodb'
测试 & 构建
$ npm test$ npm build
