关于前端:客户端开发Electron数据存储

10次阅读

共计 1483 个字符,预计需要花费 4 分钟才能阅读完成。

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

文件读写操作:

  • 确定文件目录:

    const dataPath = path.join(app.getPath('userData'), 'data.json')
    复制代码 
  • 文件写入:

    fs.writeFileSync(
      dataPath,
      JSON.stringify({username: "admin", version: "0.0.1"}),
      {encoding: "utf-8"}
    );
    复制代码 
  • 文件读取:

    const content = fs.readFileSync(dataPath, { encoding: "utf-8"});
    console.log("[ content] >", content);
    复制代码 

第三方库应用:

  • lowdb: github.com/typicode/lo…,简略不便地应用本地 JSON 数据库的扩大。
  • electron-store: github.com/sindresorhu…,专门为 Electron 设计的存取用户配置,利用状态,缓存的扩大。(github.com/sindresorhu…)

SQLite 数据存储:

  • 装置 node-sqlite3 扩大:

    npm install sqlite3 --build-from-source --runtime=electron --target=13.6.9 --dist-url=https://atom.io/download/electron
    复制代码 
  • 装置 knexjs 扩大:

    npm install knex --save
    复制代码 
  • 《因 sqlite 未装置胜利,调试后补充》这个中央真是一路坑,有没有踩过坑的留个地址😭

总结:

    以上就是在 Electron 开发对于数据的存储形式,不同的数据实用于不同的形式存储,在理论开发中可灵活运用,浏览器贮存的形式就不再进行介绍了。


欢送关注我的公众号“前端小鑫同学”,原创技术文章第一工夫推送。

正文完
 0