NioDB v0.1.1 发布 - 高性能本地 JSON 数据库
NioDB 是一个超级简单的高性能本地 JSON 数据库。
安装
$ npm i niodb --save
例子
以下代码在一个空的 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 删除键和使用 in 关键字检查键是否存在一样:
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 - json 文件路径
如果 filepath
是一个字符串,new Nio(filepath)
返回一个 Promise 对象,这个对象将会返回一个 Nio 实例,所以你需要使用 await
关键字来获取这个 Nio 对象。
如果 filepath
是 undefined,它将会直接返回一个 Nio 对象,所以不需要使用 await
关键字。然而,为了保证代码的一致性,你总是应该在实例化 Nio 数据库时使用 await
,无论是否定义了 filepath。
Config - 配置对象
config
是可选的,它应该是一个 JavaScript 对象。
所有的配置如下:
await new Nio(filepath, { // 本地的 json 文件被更新时调用 transactionUpdated: () => {} })
封装函数
以下是所有的封装函数:
$set(key, value)
: 设置一个键的值。将值设置为undefined
将会导致TypeError
。$get(key)
: 获取一个键的值。$delete(key)
: 删除键。$exists(key)
: 如果键存在,返回 true。$randomKey()
: 返回一个随机的键。$rename(key, 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'
Github 仓库:https://github.com/billdong9/niodb
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
OpenHarmony 4.1 Release
OpenAtom OpenHarmony(以下简称“OpenHarmony”)4.1 Release版本已发布,开发套件同步升级到API 11 Release。 相比4.0 Release版本,4.1 Release版本应用开发的开放能力以全新的Kit维度呈现,提供给开发者更清晰的逻辑和场景化视角;新增4000多个API,应用开发能力更加丰富;ArkUI组件开放性和动效能力得到进一步增强;Web能力持续补齐,便于开发者利用Web能力快速构建应用;分布式能力进一步增强了组网稳定性、连接安全性等;媒体支持更丰富的编码、更精细的播控能力等。 ArkUI •新增NodeContainer开放命令式的渲染节点,提升自定义绘制能力。 •文本和容器类组件能力增强 ▸ TextInput/Text支持按字符截断。 ▸ TextInput和TextArea提供获取光标位置接口。 ▸支持智能分词、新增依据分词结果插入光标逻辑以及替换分词算法。 ▸ ImageSpan支持自定义长按菜单事件、控件支持缩进/对齐。 ▸ List:ScrollToIndex支持滚动到ListItemGroup中指定ListIte...
- 下一篇
VSCode v1.88 发布,多项体验增强
🐯 关于作者 大家好,我是前端之虎陈随易。 目前是: 农村程序员 (自 2020 年离职至今都在农村待着) 独立开发者 (有多个已经在盈利中的产品) 自由职业者 (睡到自然醒,困就马上睡) 个人创业者 (注册了自己的公司,为产品服务) 自驾爱好者 (经常自驾,边看风景边敲码) 小说写作者 (断更 10年,目前构思新作品中) 开源推进者 (自 2019 年持续开源至今) 欢迎跟我交朋友: 微信:chensuiyime 扣扣:24323626 公众号:陈随易 网站:陈随易的个人网站 https://chensuiyi.me 如果微信加不上,可以公众号留言你的微信号,我加你。 让我们一起积极向上,为自己而努力奋斗! 一点碎碎念 这个版本挺期待的,因为 v1.87版本 搭载的 Electron 是 v27 版本。 而在 2024年4月4日 发布了 v1.88 版本后,我查看了一下 关于 信息,显示的是 Electron v28 版本。 这个版本有什么特点呢? 由以上截图可以看到,Electron v28 版本正式支持了 ESM。 那么什么是 ESM 呢? 这是 JavaScript 的官方模...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路