添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

@mixmarvel/ts-indexdb
TypeScript icon, indicating that this package has built-in type declarations

0.0.1 Public • Published

ts-indexdb

Install

npm install ts-indexdb
yarn add ts-indexdb

Usage

Typescript

import { init, getInstance } from 'ts-indexdb';
export type Rack =  {
    name: string
    id?: number

javascript

import TsIndexDb = require('ts-indexdb');

数据库操作方法

  • 当前类为单例模式只要init一次,后面直接getInstance获取实例来操作数据库
  • 操作返回的均为Promis对象
  • js不用加泛型
  • 数据库与表操作

    tableName: "bookrackList", // 表名 option: { keyPath: "id", autoIncrement: true }, // 指明主键为id indexs: [ // 数据库索引 key: "id", option: { unique: true key: "name" * @method 查询某张表的所有数据(返回具体数组) * @param {Object} * @property {String} tableName 表名 await getInstance().queryAll<Rack>({ tableName: 'bookrackList' * @method 查询(返回具体数组) * @param {Object} * @property {String} tableName 表名 * @property {Function} condition 查询的条件 await getInstance().query<Rack>({ tableName: 'bookrackList', condition: item => item.id === 3 * @method 查询数据(更具表具体属性)返回具体某一个 * @param {Object} * @property {String} tableName 表名 * @property {Number|String} key 名 * @property {Number|String} value 值 await getInstance().query_by_keyValue<Rack>({ tableName: 'bookrackList', key: 'name', value: '我师兄实在太稳健了' * @method 查询数据(主键值) * @param {Object} * @property {String} tableName 表名 * @property {Number|String} value 主键值 await getInstance().query_by_primaryKey<Rack>({ tableName: 'bookrackList', value: 3 * @method 修改数据(返回修改的数组) * @param {Object} * @property {String} tableName 表名 * @property {Function} condition 查询的条件,遍历,与filter类似 * @arg {Object} 每个元素 * @return 条件 * @property {Function} handle 处理函数,接收本条数据的引用,对其修改 await getInstance().update<Rack>({ tableName: 'bookrackList', condition: item => item.id === 8, handle: r => { r.name = '测试修改'; return r; * @method 修改某条数据(主键)返回修改的对象 * @param {Object} * @property {String} tableName 表名 * @property {String\|Number} value 目标主键值 * @property {Function} handle 处理函数,接收本条数据的引用,对其修改 await getInstance().update_by_primaryKey<Rack>({ tableName: 'bookrackList', value: 1, handle: r => { r.name = '测试修改'; return r; * @method 增加数据 * @param {Object} * @property {String} tableName 表名 * @property {Object} data 插入的数据 await getInstance().insert<Rack>({ tableName: 'bookrackList', data: { name: '测试', * @method 删除数据(返回删除数组) * @param {Object} * @property {String} tableName 表名 * @property {Function} condition 查询的条件,遍历,与filter类似 * @arg {Object} 每个元素 * @return 条件 await getInstance().delete<Rack>({ tableName: 'bookrackList', condition: (item)=> item.name === '测试', * @method 删除数据(主键) * @param {Object} * @property {String} tableName 表名 * @property {String\|Number} value 目标主键值 await getInstance().delete_by_primaryKey<Rack>({ tableName: 'bookrackList', value: 4 * @method 删除表数据 * @param {String}name 数据库名称 await getInstance().delete_table('bookrackList') * @method 删除数据库 * @param {String}name 数据库名称 await getInstance().delete_db('bookrackList')