1.0.2 • Published 4 years ago

xq-idb v1.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

xq-idb

一个简单实用的indexeddb库

安装

可以使用npm进行安装

npm i xq-idb

使用教程

因为indexeddb都是异步操作,所以本项目大量使用了Promise

数据库管理 IDBStore

打开数据库

使用IDBStore.open(dbName,version) : Promise

方法参数方法传入参数名称参数类型是否必填
dbName数据库名字Stringyes
version数据库版本Numberyes
IDBStore.open("mydb",1).then(()=>{
    console.log("数据打开成功")
}).catch((err)=>{
    console.log(err)
})

获取数据库实例

使用IDBStore.database() : StoreTable

方法参数方法传入参数名称参数类型是否必填
dbName数据库名字Stringyes
version数据库版本Numberyes
IDBStore.open("mydb",1).then(()=>{
    console.log("数据打开成功")
}).catch((err)=>{
    console.log(err)
})

数据表操作 StoreTable

判断数据表是否存在

使用StoreDatabase.hasTable(dbName) : Boolean

方法参数方法传入参数名称参数类型是否必填
dbName数据库名字Stringyes
IDBStore.open("mydb",1).then((res)=>{
    res.database().hasTable("table")
}).catch((err)=>{
    console.log(err)
})

创建表

使用StoreDatabase.createTable(tableOption)

tableOption 参数数组

方法参数方法传入参数名称参数类型是否必填
tableName表名称Stringyes
primary主键idStringyes
index索引Arrayno
    IDBStore.open("mydb", 1).then((res) => {
        res.database().createTable({
            tableName: "mydb",
            primary: "id",
            index: [
                {
                    keyName: "name",
                    keyPath: "name",
                    options: {}
                }, {
                    keyName: "email",
                    keyPath: "email"
                }
            ]
        })
    }).catch((err) => {
        console.log(err)
    })

获取表对象

使用StoreDatabase.table(tableName) : StoreTable

方法参数方法传入参数名称参数类型是否必填
tableName表名称Stringyes
    IDBStore.open("mydb", 1).then((res) => {
        res.database().table("mydb")
    }).catch((err) => {
        console.log(err)
    })

表对象 StoreTable

添加数据

使用StoreTable.add(data) : Promise

方法参数方法传入参数名称参数类型是否必填
data数据String,Arrayyes
    IDBStore.open("mydb", 1).then((res) => {
        res.database().table("mydb").add({
            id:1,
            name:"小王",
            email:"aa@aa.com"
        })
    }).catch((err) => {
        console.log(err)
    })

设置数据

使用StoreTable.add(data) : Promise

方法参数方法传入参数名称参数类型是否必填
data数据String,Arrayyes
    IDBStore.open("mydb", 1).then((res) => {
        res.database().table("mydb").put({
            id:1,
            name:"小红",
            email:"aa@aa.com"
        })
    }).catch((err) => {
        console.log(err)
    })

主键条件

使用StoreTable.keyRange(condition,val) : StoreTable

方法参数方法传入参数名称参数类型是否必填
condition条件String,Arrayyes
val数据Number,Arrayyes
    IDBStore.open("mydb", 1).then((res) => {
        res.database().table("mydb").keyRange(">=",15).get();
        res.database().table("mydb").keyRange(">=&&<",[15,20]).get();
    }).catch((err) => {
        console.log(err)
    })

清空数据表

使用StoreTable.clear() : Promise

方法参数方法传入参数名称参数类型是否必填
    IDBStore.open("mydb", 1).then((res) => {
        res.database().table("mydb").clear();
    }).catch((err) => {
        console.log(err)
    })

删除数据

使用StoreTable.delete(data) : Promise

方法参数方法传入参数名称参数类型是否必填
data删除的数据Number,Functionno
    IDBStore.open("mydb", 1).then((res) => {
        res.database().table("mydb").keyRange(">=",15).delete();
        res.database().table("mydb").delete(15);
        res.database().table("mydb").delete((val)=>{
            return val.id > 12;
        });
    }).catch((err) => {
        console.log(err)
    })

获取数据

使用StoreTable.get(data) : Promise

方法参数方法传入参数名称参数类型是否必填
data获取的回调函数Functionno
    IDBStore.open("mydb", 1).then((res) => {
        res.database().table("mydb").keyRange(">=",15).get();
        res.database().table("mydb").get((val)=>{
            return val.id > 12;
        });
    }).catch((err) => {
        console.log(err)
    })