0.1.2 • Published 1 year ago

@llius/jsonbin-db v0.1.2

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

jsonbin-db

项目介绍

写这个项目的原因在于,在将自己 nextjs 服务部署到 vercel 时,有一定的限制 1. 不能使用本地文件系统(Serverless不允许操作本地文件系统) 2. 不能使用数据库(数据库的费用昂贵) 3. 不能使用本地缓存(每次部署后本地数据都会重置)

于是有了这个项目,将 json 数据作为持久化 db 使用,可以对 json 进行增删读写作为远端db使用,提供增删改查的能力 1. 所以寻找了一些免费的json存储服务,最终选择了jsonbin.org 2. 能够有免费的存储空间,且提供了api接口,可以对json进行增删改查

接入方式

安装埋点SDK

pnpm i @llius/jsonbin-db

项目使用

import { JsonBinDb } from '@llius/jsonbin-db'

// https://jsonbin.org 申请的apikey const db = new JsonBinDb({ username: 'YOUR_NAME', dbName: 'CUSTOM_FILE_NAME', apikey: '' })

const initDb = async () => { await db.initBin()

// 获取所有数据 await db.getObjectDefault('.')

// 存储数据 await db.push('.list', { id: 0, name: 'test1' }, { id: 1, name: 'test2' }, { id: 2, name: 'test3'}, { id: 3, name: 'test4'} )

// 获取某个字段的值,如果没获取到,则设置默认值为{} await db.getObjectDefault('.list0.name', {})

// 获取某个 id 的下标 await db.getIndex(.list, 0) // output -> 0 // 获取某个字段的index await db.getIndex(.list, 'test2', 'name') // output -> 1

// 删除某个字段 await db.delete('.list') // 删除某个字段的某个值 await db.delete('.list0.name') // 删除所有 await db.delete('.') } initDb()

#### 初始化字段说明
| 字段 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- |
| username | jsonbin.org 用户名 | string | - |
| dbName | 自定义存储的文件名 | string | - |
| apikey | jsonbin.org apikey | string | - |

---

### 常用 API
> 可参考 [node-json-db](https://www.npmjs.com/package/node-json-db) 项目中的 API 使用

| API | 说明 | 参数 | 返回值 |
| --- | --- | --- | --- |
| initBin | 初始化 bin | - | - |
| getData | 获取数据 | path: string | any |
| getObjectDefault | 获取数据,如果获取不到,则设置默认值 | path: string, defaultValue: any | any |
| count | 获取数据长度 | path: string | number |
| getIndex | 获取某个字段的下标 | path: string, value: any, field?: string | number |
| push | 存储数据 | path: string, data: any | - |
| delete | 删除数据 | path: string | - |
0.1.0

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago