1、文档位置
InDB开发文档_唐霜的博客最便捷的indexedDB操作工具,10分钟上手indexedDB操作https://www.tangshuang.net/5681.html2、使用demo
1)下载依赖
npm i indb
2)项目中使用(异步回调,必须使用async / await)
import InDB from "indb";
async () => {
const DB_NAME = "InDB_TEST";
const DB_VERSION = 5;
const idb = new InDB({
name: DB_NAME,
version: DB_VERSION,
stores: [
{
name: "departs",
keyPath: "id",
autoIncrement: true,
},
{
name: "students",
keyPath: "id",
indexes: [
{
name: "id",
keyPath: "id",
unique: true,
},
{
name: "name",
},
{
name: "age",
},
],
},
{
name: "kv",
isKv: true,
},
{
name: "cleartest",
},
{
name: "txtest",
keyPath: "id",
},
],
});
const departstore = idb.use("departs");
const studentstore = idb.use("students");
const kvstore = idb.use("kv");
const teststore = idb.use("cleartest");
const txstore = idb.use("txtest");
// clear
await studentstore.clear();
let first = await studentstore.first();
console.log("clear", first);
// add
await studentstore.add({ id: "1", name: "toda", age: 10 });
let addObj = await studentstore.get("1");
console.log("add", addObj);
// put
let time = new Date();
await studentstore.put({ id: "2", name: "sood", age: 10, time });
await studentstore.put({ id: "3", name: "tomy", age: 10 });
await studentstore.put({ id: "4", name: "goda", age: 11 });
await studentstore.put({ id: "2", name: "othe", age: 23 });
let putobj = await studentstore.get("2");
console.log("put", putobj);
//put multiple
await studentstore.put([
{ id: "6", name: "xida", age: 10 },
{ id: "7", name: "himen", age: 11 },
]);
const putmultiplecount = await studentstore.count();
console.log("put multiple", putmultiplecount);
// delete
await studentstore.delete("1");
let deleteobj = await studentstore.get("1");
console.log("delete", deleteobj);
// delete multiple
await studentstore.delete(["6", "7"]);
const deletemultiplecount = await studentstore.count();
console.log("delete multiple", deletemultiplecount);
// remove
await studentstore.put({ id: "10", name: "tokyo" });
const removebefore = await studentstore.get("10");
console.log("remove before", removebefore);
await studentstore.remove(removebefore);
const removeafter = studentstore.get("10");
console.log("remove after", removeafter.name);
// remove multipl
await studentstore.put([
{ id: "11", name: "tokyo" },
{ id: "12", name: "tokyo" },
]);
const removemultiplbeforecount1 = await studentstore.count();
console.log("remove multipl before", removemultiplbeforecount1);
await studentstore.remove([
{ id: "11", name: "tokyo" },
{ id: "12", name: "tokyo" },
]);
const removemultiplaftercount2 = await studentstore.count();
console.log("remove multipl after", removemultiplaftercount2);
// get
let getobj = await studentstore.get("3");
console.log("get", getobj);
// get multiple
let getmultipleobjs = await studentstore.get(["3", "4", "5"]);
console.log("get multiple", getmultipleobjs);
// find
let findobj = await studentstore.find("age", 11);
console.log("find", findobj);
// keys
let keys = await studentstore.keys();
console.log("keys", keys);
// all
let allitems = await studentstore.all();
console.log("all", allitems);
// first
let firstitem = await studentstore.first();
console.log("first", firstitem);
// last
let lastitem = await studentstore.last();
console.log("last", lastitem);
// some
let someitems = await studentstore.some(2);
console.log("some", someitems);
// some with offset
let somewithoffsetitems = await studentstore.some(2, 1);
console.log("some with offset", somewithoffsetitems);
// count
let count = await studentstore.count();
console.log("count", count);
// query
let queryobjs = await studentstore.query("age", 10);
console.log("query", queryobjs);
// query >
let queryobjs2 = await studentstore.query("age", 15, ">");
console.log("query >", queryobjs2);
// query !=
let queryobjs3 = await studentstore.query("age", 23, "!=");
console.log("query !=", queryobjs3);
// select 1 and 2
let stds1 = await studentstore.select([
{ key: "age", value: 10, compare: "<=" },
{ key: "name", value: "tomy", compare: "=" },
]);
console.log("select 1 and 2", stds1);
// select 1 or 2
let stds2 = await studentstore.select([
{ key: "age", value: 22, compare: ">", optional: true },
{ key: "age", value: 10, compare: "=", optional: true },
]);
console.log("select 1 or 2", stds2);
// (1 and 2) or (3)
let stds3 = await studentstore.select(
[
{ key: "age", value: 10, compare: "<=" },
{ key: "name", value: "tomy", compare: "=" },
],
[{ key: "age", value: 11, compare: ">" }]
);
console.log("select (1 and 2) or (3)", stds3);
// use
await departstore.clear();
await departstore.put({ id: "1", name: "doge" });
let useobjs = await departstore.all();
console.log("use", useobjs);
// keys in autoincrease store
let departstorekeys = await departstore.keys();
console.log("keys in autoincrease store", departstorekeys);
// setItem/getItem/removeItem
await kvstore.clear();
await kvstore.setItem("2", "jiago");
let setItemname = await kvstore.getItem("2");
console.log("setItem", setItemname);
await kvstore.removeItem("2");
let getItemnil = await kvstore.getItem("2");
console.log("getItem", getItemnil);
// clear
await teststore.clear();
let clearcount = await teststore.count();
console.log("clear", clearcount);
// Storage
const store = new InDB();
await store.setItem("name", "tomy");
const Storagename = await store.getItem("name");
console.log("Storage", Storagename);
// large data put
await studentstore.clear();
const items = [];
for (let i = 0; i < 1000; i++) {
const random = Math.random() + "";
items.push({
id: random,
name: "name_" + random,
age: "age_" + random,
});
}
await studentstore.put(items);
const largedataputcount = await studentstore.count();
console.log("large data put count",largedataputcount);
const largedataputcountsome = await studentstore.some(200);
console.log("large data put count some",largedataputcountsome);
}