什么是 indexed-db-as-promised
indexed-db-as-promised 是一个 npm 包,它提供了一个简单易用的 API 来在前端页面中访问浏览器内置的 indexedDB 数据库。基于 Promise、async/await 和 fluent API 设计,它能让 indexedDB 的使用变得更加简单和直观。
安装 indexed-db-as-promised
在要使用 indexed-db-as-promised 的项目中,使用以下命令安装:
npm install indexed-db-as-promised
如何使用 indexed-db-as-promised
创建数据库和数据表
使用 indexed-db-as-promised 创建数据库和数据表非常简单。以下是一个例子:
import { openDatabase } from 'indexed-db-as-promised'; const database = await openDatabase('my-database', { version: 1 }, async (database) => { await database.createObjectStore('my-object-store', { keyPath: 'id' }); });
在这个例子中,我们使用 openDatabase 函数创建了一个名为 my-database 的数据库,并在版本号为 1 的情况下为它创建了一个名为 my-object-store 的数据表。
创建数据表时,我们可以为其指定一个键值,这里我们指定使用 id 作为键值。如果不指定,则会默认使用一个名为 key 的键值。
插入数据
插入数据也非常简单。以下是一个例子:
const transaction = database.transaction(['my-object-store'], 'readwrite'); const objectStore = transaction.objectStore('my-object-store'); const data = { id: 1, name: 'Alice' }; await objectStore.add(data);
在这个例子中,我们创建了一个事务,并从数据库中获取了名为 my-object-store 的数据表。然后,我们向这个数据表中插入了一个 id 为 1、name 为 Alice 的数据。
查询数据
查询数据同样也非常简单。以下是一个例子:
const transaction = database.transaction(['my-object-store'], 'readonly'); const objectStore = transaction.objectStore('my-object-store'); const data = await objectStore.get(1); console.log(data);
在这个例子中,我们创建了一个只读事务,并从数据库中获取了名为 my-object-store 的数据表。然后,我们查询了 id 为 1 的数据,并将其输出到控制台中。
更新数据
更新数据也非常简单。以下是一个例子:
const transaction = database.transaction(['my-object-store'], 'readwrite'); const objectStore = transaction.objectStore('my-object-store'); const data = { id: 1, name: 'Alice Smith' }; await objectStore.put(data);
在这个例子中,我们创建了一个读写事务,并从数据库中获取了名为 my-object-store 的数据表。然后,我们更新了 id 为 1 的数据的 name 属性,并保存到数据库中。
删除数据
删除数据同样也非常简单。以下是一个例子:
const transaction = database.transaction(['my-object-store'], 'readwrite'); const objectStore = transaction.objectStore('my-object-store'); await objectStore.delete(1);
在这个例子中,我们创建了一个读写事务,并从数据库中获取了名为 my-object-store 的数据表。然后,我们删除了 id 为 1 的数据。
总结
indexed-db-as-promised 提供了一个简单易用的 API 来在前端页面中访问浏览器内置的 indexedDB 数据库。基于 Promise、async/await 和 fluent API 设计,它能让 indexedDB 的使用变得更加简单和直观。通过本文,你可以了解到 indexed-db-as-promised 的基本使用方法,包括创建数据库和数据表、插入数据、查询数据、更新数据和删除数据等。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60065f87238a385564ab6cf3