Dexie.js 使用教程

news/2025/11/24 9:41:37/文章来源:https://www.cnblogs.com/panwudi/p/19262469

Dexie.js 是一个基于 IndexedDB 的轻量级 JavaScript 库,它提供了更简单、更友好的 API 来操作浏览器中的 IndexedDB 数据库。下面是 Dexie.js 的基本使用教程。

1. 安装 Dexie.js

可以通过 npm 或直接通过 CDN 引入 Dexie.js:

npm 安装

npm install dexie

CDN 引入

<script src="https://unpkg.com/dexie@latest/dist/dexie.js"></script>

2. 创建数据库

// 创建或打开数据库
const db = new Dexie('MyDatabase');// 定义数据库模式和版本
db.version(1).stores({friends: '++id, name, age', // 主键是自增的id,索引有name和ageproducts: '++id, name, price'
});

3. 基本操作

添加数据

async function addFriend() {try {const id = await db.friends.add({name: '张三',age: 25,email: 'zhangsan@example.com'});console.log(`添加成功,ID: ${id}`);} catch (error) {console.error('添加失败:', error);}
}

查询数据

async function getFriends() {// 获取所有朋友const allFriends = await db.friends.toArray();console.log(allFriends);// 按条件查询const youngFriends = await db.friends.where('age').below(30).toArray();console.log(youngFriends);// 获取单个记录const friend = await db.friends.get(1);console.log(friend);
}

 更新数据

async function updateFriend() {try {const updated = await db.friends.update(1, {age: 26});if (updated) {console.log('更新成功');} else {console.log('未找到记录');}} catch (error) {console.error('更新失败:', error);}
}

删除数据

async function deleteFriend() {try {await db.friends.delete(1);console.log('删除成功');} catch (error) {console.error('删除失败:', error);}
}

4. 高级查询

使用 where() 方法

async function complexQuery() {// 年龄在20-30之间的朋友const friends = await db.friends.where('age').between(20, 30).toArray();// 名字以"张"开头的朋友const zhangFriends = await db.friends.where('name').startsWith('张').toArray();
}

使用 each() 方法迭代

async function iterateFriends() {await db.friends.each(friend => {console.log(friend.name);});
}

5. 事务处理

async function transactionExample() {await db.transaction('rw', db.friends, db.products, async () => {// 在这个事务中可以同时操作friends和products表await db.friends.add({name: '李四', age: 28});await db.products.add({name: '笔记本电脑', price: 5999});}).catch(error => {console.error('事务失败:', error);});
}

6. 数据库升级

当需要修改数据库结构时,可以增加版本号:

db.version(2).stores({friends: '++id, name, age, email', // 新增email字段products: '++id, name, price, stock' // 新增stock字段
});

7. 使用索引

async function useIndex() {// 使用name索引快速查询const friend = await db.friends.where('name').equals('张三').first();// 复合索引查询const friends = await db.friends.where(['name', 'age']).equals(['张三', 25]).toArray();
}

8. 错误处理

db.on('error', error => {console.error('数据库错误:', error);
});async function safeOperation() {try {await db.friends.add({name: '王五'});} catch (error) {console.error('操作失败:', error);}
}

9. 使用 Promise 和 async/await

async function demo() {try {// 添加数据await db.friends.add({name: '赵六', age: 30});// 查询数据const friends = await db.friends.toArray();console.log(friends);// 更新数据await db.friends.where('name').equals('赵六').modify({age: 31});} catch (error) {console.error('发生错误:', error);}
}

10. 关闭数据库

db.close();

总结

Dexie.js 大大简化了 IndexedDB 的使用,提供了更直观的 API 和强大的查询能力。通过本教程,你应该能够开始使用 Dexie.js 在浏览器中存储和操作数据了。更多高级功能可以参考 Dexie.js 官方文档。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/974461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025重庆好的留学机构

2025重庆好的留学机构一、重庆学子如何挑选靠谱的留学中介?这五个问题你想清楚了吗?作为一位拥有近十年经验的国际教育规划师,我深知在留学申请这条路上,选择一个合适的伙伴有多么重要。特别是对于重庆的学生和家长…

2025新加坡留学中介排行

2025新加坡留学中介排行一、新加坡留学中介怎么选?这五个问题你考虑过吗?作为一位拥有九年国际教育规划经验的从业者,我每天都会接触到大量计划赴新加坡留学的学生和家长。在2025年10月24日的今天,新加坡因其优质的…

2025苏州最好的留学机构在哪里啊

2025苏州最好的留学机构在哪里啊作为一位拥有15年经验的国际教育规划师,我经常被家长和学生问及:“2025年苏州最好的留学机构在哪里啊?”这个问题看似简单,但背后涉及众多考量因素。今天,我将基于多年行业观察和数…

2025深圳美国留学机构排名前十

2025深圳美国留学机构排名前十一、深圳美国留学机构怎么选?这些疑问你有吗?作为从事国际教育规划工作超过十年的从业者,我经常被深圳的家长和学生问到类似的问题:深圳本地的美国留学中介哪家更靠谱?申请美研是该找…

详细介绍:手机环境光自动亮度调节系统完整实现详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年 11 月激光切割钢结构,大型钢结构,C 型钢结构厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读!

在全球建筑工业化与工程精细化的发展趋势下,激光切割钢结构、大型钢结构、C 型钢结构凭借高效适配性、稳定力学性能与环保优势,成为各类工程建设的核心材料。然而,行业内部分厂家存在资质缺失、工艺标准不统一、售后…

Web 常见名词解释

Web 常见名词解释 Internet Internet是由遍布全世界的各种各样的网络通过TCP/IP协议连接成的一个松散结合的全球网,它使网络上的各台计算机(Internet上称为主机,即host)可以互相交换信息。 Internet为用户提供了各…

2025 年 11 月钢结构安装,钢结构设计,贰级资质钢结构,H 型钢结构最新推荐:聚焦资质、案例、售后的五家机构深度解读

随着全球建筑工业化进程加速,钢结构相关服务的市场需求持续攀升,据国际钢结构协会(AISC)2025 年测评报告显示,优质服务商的项目履约率较行业平均水平高出 47%,而资质不全、技术薄弱的机构导致的工程隐患占比达 3…

AI与智能工具如何终结自由职业者发票困境

本文探讨人工智能和智能金融工具如何帮助自由职业者自动化发票管理、预测现金流,将行政工作时间转化为创造性工作,提升效率并减轻财务压力。自动化取代繁琐文书工作 超过70%的美国自由职业者曾遭遇付款延迟或不足问题…

2025年山东连栋玻璃温室公司权威推荐榜单:玻璃智能温室/玻璃连栋温室/玻璃温室设计源头公司精选

在现代农业与设施园艺高速发展的推动下,山东连栋玻璃温室凭借其优异的光照性能和稳定的环境控制能力,正成为现代农业生产的重要设施。 据行业报告显示,2024年中国智能温室市场规模已达到287亿元,预计2025年将突破3…

2025 合同纠纷律师咨询最新推荐排行榜:股权债务 / 劳动仲裁 / 民商事诉讼顶尖法律顾问权威指南

引言 商业往来中的合同纠纷、股权争议、劳动争议等法律难题,已成为影响市场主体权益的核心痛点,高效专业的法律服务成为破局关键。本次榜单依托国际律师协会(IBA)测评体系、全球法律服务质量指数(GLQI)及行业口碑…

windows11关闭系统自动更新

Windows11关闭更新 (1)win+r运行输入:regedit (2)在注册表编辑左侧栏依次展开以下目录:\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings (3)在窗口右侧空白处创建新建一个:DWORD(32位)值 …

【数字逻辑】流水灯实战!红5秒/黄2秒/绿1秒精准控时(74HC161+74HC138完整便捷的方案+接线图)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年北京儿童孤独症谱系障碍培训权威推荐榜单:儿童高功能自闭症/儿童注意力培训机构/儿童注意力集训营培训精选

在早期干预理念不断深入与康复技术持续创新的背景下,专业的儿童孤独症谱系障碍培训服务正成为改善患儿社会功能、提升家庭生活质量的重要支撑。 据2025年发布的《中国孤独症教育康复行业发展状况报告》数据显示,我国…

2025 建筑工程施工总包施工团队最新推荐榜:聚焦质量管控与新锐势力,5 大维度权威甄选优质企业

引言 当前建筑工程行业正迈向高质量发展转型期,市场对工程品质、环保标准与管理效率的要求持续升级,但行业仍存在资质参差不齐、工期延误、隐性成本突出等痛点。为帮助需求方精准筛选合作伙伴,本次榜单联合国际建筑…

2025 最新聚合硫酸铁优质生产厂家最新推荐:覆盖多类型产品 解析实力厂商核心优势 助力采购方精准选品固态聚合硫酸铁 / 粉末聚合硫酸铁 / 硫酸亚铁公司推荐

引言 随着水处理行业全球化需求持续攀升,聚合硫酸铁作为高效净水药剂,市场规模逐年扩大,但行业内厂商资质参差不齐的问题日益凸显。部分厂商因技术短板导致产品纯度不足、絮凝效率低,不仅影响水处理效果,还可能引…

AI SDK:重新定义 AI 应用开发

引言 如果你在过去一年中关注前端和全栈开发领域,可能会注意到一个有趣的现象:传统的 Web 应用正在积极拥抱人工智能。 什么是 AI SDK? AI SDK 是由 Next.js 开发团队 Vercel 推出的开源 TypeScript 工具库,专为构…

2025年中频点焊机厂家权威推荐榜单:中频直流点焊机/中频交流点焊机/中频焊接设备源头厂家精选

中频点焊机作为现代制造业中不可或缺的金属连接设备,其市场需求正随着汽车制造、家电生产和航空航天等行业对焊接质量要求的提升而持续增长。本文将基于详实的行业数据,为您推荐2025年度在中频点焊机领域表现卓越的T…

专访创一AI:2025年短剧革命,揭秘爆款背后的智能引擎

开场引言 “短剧行业不再野蛮生长,专业化、效率化成为新的要求。 AI工具将不再是一个‘可选’,而是成为一个‘必须’,AI工具正在‘重塑’短剧创作流程”。 创一 AI 作为垂直领域代表,其利用 AI 技术打造短剧创作流…

20232410 2025-2026-1 《网络与系统攻防技术》实验七实验报告

1.实验内容 1.1实验内容简述 (1)应用SET工具建立冒名网站。 (2)利用ettercap完成DNS欺骗攻击。 (3)结合应用两种技术,使被攻击者会通过域名访问到冒名网站。 (4)结合攻击过程,提出具体防范方法。 1.2学习内容…