前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >客户端开发(Electron)数据存储

客户端开发(Electron)数据存储

作者头像
前端小鑫同学
发布2022-12-26 10:06:54
2.9K0
发布2022-12-26 10:06:54
举报

Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~

Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。

前言:

数据存储在应用开发中也是必不可少的一块功能,在Electron开发中支持将数据持久化到本地文件中,浏览器提供的介质和SQLite数据库中,SQLite作为一款轻量级的关系数据存储在移动端开发中也广泛应用。

本地文件存储:

存储目录:

因为不通的系统的文件目录不统一,Electron提供了专有的API来方便我们获取目录(app.getPath("userData");

常见的用户目录:

  • desktop、documents、downloads、pictures、music、video

特殊的文件目录:

  • temp对应系统临时文件夹路径。
  • ·exe对应当前执行程序的路径。
  • ·appData对应应用程序用户个性化数据的目录。
  • userData是appData路径后再加上应用名的路径,是appData的子路径。这里说的应用名是开发者在package.json中定义的name属性的值。

系统默认目录:

  • 当前用户的主目录:require('os').homedir(); / C:\Users\<username>
  • 默认临时文件目录:require('os').homedir(); / C:\Users\<username>\AppData\Local\Temp文件读写操作:

确定文件目录:

代码语言:javascript
复制
const dataPath = path.join(app.getPath('userData'), 'data.json')

文件写入:

代码语言:javascript
复制
fs.writeFileSync(
    dataPath,
    JSON.stringify({ username: "admin", version: "0.0.1" }),
    { encoding: "utf-8" }
);

文件读取:

代码语言:javascript
复制
const content = fs.readFileSync(dataPath, { encoding: "utf-8" });
console.log("[ content ] >", content);
第三方库使用:

lowdb: https://github.com/typicode/lowdb,简单方便地使用本地JSON数据库的扩展。

electron-store: https://github.com/sindresorhus/electron-store,专门为Electron设计的存取用户配置,应用状态,缓存的扩展。(https://github.com/sindresorhus/electron-store)

SQLite数据存储:

安装node-sqlite3扩展:

代码语言:javascript
复制
npm install sqlite3 --build-from-source --runtime=electron --target=13.6.9 --dist-url=https://atom.io/download/electron

安装knexjs扩展:

代码语言:javascript
复制
npm install knex --save

《因sqlite未安装成功,调试后补充》这个地方真是一路坑,有没有踩过坑的留个地址😭

总结:

以上就是在Electron开发关于数据的存储方式,不同的数据适用于不同的方式存储,在实际开发中可灵活运用,浏览器储存的方式就不再进行介绍了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • 本地文件存储:
    • 存储目录:
      • 第三方库使用:
      • SQLite数据存储:
      • 总结:
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档