给我创建一个名为loginDB的indexedDB数据库,建立名为account的表,表中的项有user和pwd两项
时间: 2024-03-22 11:40:31 浏览: 15
好的,以下是创建名为 "loginDB" 的 IndexedDB 数据库,并在其中创建一个名为 "account" 的对象仓库,仓库中包含 "user" 和 "pwd" 两个属性的代码示例:
```javascript
// 打开或创建名为 loginDB 的 IndexedDB 数据库
const request = indexedDB.open('loginDB', 1);
// 定义数据库结构
request.onupgradeneeded = event => {
const db = event.target.result;
const objectStore = db.createObjectStore('account', { keyPath: 'user' }); // 创建一个名为 account 的对象仓库,并以 user 属性作为主键
objectStore.createIndex('pwd', 'pwd', { unique: false }); // 在 account 中创建一个名为 pwd 的索引
};
// 监听打开数据库的成功事件
request.onsuccess = event => {
const db = event.target.result;
console.log('loginDB 数据库已经打开或创建成功!');
// 在 account 对象仓库中插入一条账户记录
const transaction = db.transaction(['account'], 'readwrite');
const objectStore = transaction.objectStore('account');
objectStore.put({ user: 'admin', pwd: '123456' });
transaction.oncomplete = () => {
console.log('账户记录已经插入到 loginDB 数据库中!');
};
};
// 监听打开数据库的失败事件
request.onerror = event => {
console.log('打开或创建 loginDB 数据库失败!', event.target.error);
};
```
上面的代码中,我们使用 `indexedDB.open()` 方法来打开或创建名为 "loginDB" 的 IndexedDB 数据库。在 `onupgradeneeded` 事件处理程序中,我们定义了数据库的结构,创建了一个名为 "account" 的对象仓库,并以 "user" 属性作为主键。在 "account" 对象仓库中,我们创建了一个名为 "pwd" 的索引。在 `onsuccess` 事件处理程序中,我们使用 `transaction` 对象来控制数据库操作,向 "account" 对象仓库中插入了一条账户记录。在 `onerror` 事件处理程序中,我们处理了打开或创建数据库失败的情况。