🐬 Niodb

这是最简单的高性能本地 JSON 数据库。

安装

  1. $ npm i niodb --save

快速示例

以下代码在空的.json文件example_data.json上创建了一个Nio数据库,并添加了一些键值对。

  1. import { Nio } from 'niodb' // 或者 const { Nio } = require('niodb')
  2. const db = await new Nio('example_data.json')
  3. db.name = 'NioDB'
  4. db.message = 'Hello NioDB!'
  5. db.users = {
  6. count: 100
  7. }
  8. db.users.count++

运行此代码后的example_data.json文件将是:

  1. {
  2. "name": "NioDB",
  3. "message": "Hello NioDB!",
  4. "users": {
  5. "count": 101
  6. }
  7. }

开始使用

设置/获取键的值

在数据库中设置一个键以保存一个值,就像给一个JavaScript对象赋值一样简单:

  1. import { Nio } from 'niodb'
  2. const db = await new Nio()
  3. db.key = 'value'

如果定义了filepath,对数据的更改将异步且原子地存储在磁盘上。

获取一个键的值也非常简单:

  1. console.log(db.key)

🌟 只需将Nio实例视为一个普通的JavaScript对象。

包装方法

或者,您可以使用包装方法$set$get来做同样的事情:

  1. db.$set(key, value)
  2. db.$get(key)

选择权在你。

删除/检查键是否存在

就像在JavaScript对象中删除和检查键一样:

  1. delete db.key
  2. console.log(key in db)

包装方法

  1. db.$delete(key)
  2. db.$exists(key)

API

Nio

  • new Nio(filepath, config):

每个Nio实例都是绑定到一个.json文件的数据库:

  1. const database = await new Nio(filepath, config);

文件路径

如果filepath是一个字符串,new Nio(filepath)将返回一个Promise对象,该对象将返回一个Nio实例,因此必须使用await来获取实例。

如果filepath未定义,它将返回一个Nio实例,因此不需要await。然而,为了一致性,当初始化数据库时,您应该总是使用await

配置

config是可选的,它应该是一个对象。

所有选项包括:

  1. await new Nio(filepath, {
  2. // 当磁盘上的.json文件已更新时调用此方法
  3. transactionUpdated: () => {}
  4. })

包装方法

所有包装方法包括:

  • $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

链式调用

您可以将包装方法链接在一起:

  1. const db = await new Nio()
  2. db.content = {
  3. content1: 'hello',
  4. content2: 'this is NioDB',
  5. content3: 'you will like it'
  6. }
  7. db.content.$delete('content1').$rename('content2', 'introduction').$set('content3', true)
  8. console.log(db)

您将得到:

  1. {
  2. content: {
  3. content3: true,
  4. introduction: 'this is NioDB'
  5. }
  6. }

错误处理

  1. import { DatabaseError } from 'niodb'

测试 & 构建

  1. $ npm test
  2. $ npm build

许可证

MIT