🐬 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.key
console.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