这个项目能做什么
lowdb 是一个小巧、极简的本地 JSON 数据库,适用于 JavaScript 和 TypeScript。其核心理念是:如果你懂 JavaScript,你就已经知道如何使用它——数据保存在 db.data 的普通对象中,你可以使用原生数组和对象操作来查询或修改,而无需自定义查询语言。
典型用法是读取或创建 JSON 文件,然后通过两步(修改 db.data,然后 await db.write())或通过 db.update(fn) 一步完成更新。生成的 db.json 是普通 JSON。TypeScript 用户可以声明 Data 类型,使 db.data 获得类型检查,从而捕获诸如将数字推入字符串数组之类的错误。
该包是纯 ESM,通过 npm install lowdb 安装。它为常见场景提供了四个预设:JSONFilePreset、JSONFileSyncPreset、LocalStoragePreset 和 SessionStoragePreset。如需更多控制,它提供 Low 和 LowSync 类以及适配器。内置适配器包括用于 JSON 文件的 JSONFile 和 JSONFileSync,用于测试中快速内存使用的 Memory 和 MemorySync,以及用于浏览器的 LocalStorage 和 SessionStorage。实用适配器 TextFile、TextFileSync、DataFile 和 DataFileSync 通过提供 parse 和 stringify 函数,帮助构建自定义适配器,例如支持 YAML 或添加加密或压缩。
适配器是暴露 read 和 write 方法的简单类,因此用户可以针对远程存储或其他格式。README 还展示了使用 Lodash 扩展 Low 以进行链式查询。文档中说明的限制:lowdb 不支持 Node 的 cluster 模块,并且写入大型对象(约 10-100MB)可能较慢,因为每次 db.write 都会用 JSON.stringify 序列化整个 db.data。批量操作和仅在需要时写入可以缓解此问题,对于更大规模,README 推荐使用 PostgreSQL 或 MongoDB。
评论
0 评分人数达到10人后显示
登录后参与讨论。