Nodejs Electron 在本地存放一些数据, 大家都是怎么操作的
Nodejs Electron 在本地存放一些数据, 大家都是怎么操作的
考虑用 sqlite3, 但是如果要用到加密 在 windows 环境编译太艹蛋了(我的问题)
使用 better-sqlite3 感觉还可以
但是卡在 Sqlcipher 编译部分
大概研究了两个下午 没什么进展
就算编译没问题, 我感觉也会在打包之后遇到问题.
不知道大家怎么处理这些配置、数据的.
真巧,这两天一直在搞 electron-vue 缓存视频 ,图片到本地、配置文件啥的。不过我的项目 没啥保密的。都是直接用 fs 创建个 .txt 保存到 userData 文件夹 ojbk。
浏览器 localstorage
用的 localstorage,少量数据的话
我之前是使用的 nedb
推荐你用原生功能。另外尽量不要杀鸡焉用牛刀, 简单数据存 localStorage, 复杂数据再考虑存 IndexedDB.
如果需要用到加密, 我习惯加密后把数据往 AppData 里存。
和楼上差不多 AppData+本地写入文件+localstorage ,具体场景具体分析
简单点可以用 nedb,不过这项目好久没维护,要求高点可以用 rxdb
其实数据很简单, 但是可能涉及到不定长度的字符 所以没考虑使用 localStorage 怕会影响显示变卡.
lowdb
可参考 PicGo 作者的
lowdb
可参考 PicGo 作者的
https://molunerfinn.com/electron-vue-3/
lowdb 我也是用的这个
在Node.js和Electron框架下,本地存放数据有多种操作方法,以下是一些常见方案及代码示例:
-
使用Electron-store模块
Electron-store是Electron官方提供的key-value存储模块,便于存储和检索应用程序配置和数据。
const Store = require('electron-store'); const store = new Store(); store.set('key', 'value'); // 设置数据 const value = store.get('key'); // 获取数据
-
使用Node.js的fs模块
Node.js的fs模块支持本地文件的读写操作,可以灵活存储各种数据。
const fs = require('fs'); const path = require('path'); const filePath = path.join(app.getPath('userData'), 'myfile.txt'); fs.writeFileSync(filePath, 'hello world', 'utf-8'); // 写入文件 const data = fs.readFileSync(filePath, 'utf-8'); // 读取文件 console.log(data);
-
使用数据库
Electron还支持使用SQLite、MongoDB等数据库存储数据,适合需要复杂查询和关系管理的场景。
// 示例:使用SQLite const sqlite3 = require('sqlite3').verbose(); let db = new sqlite3.Database(':memory:'); // 内存数据库,实际使用时可改为文件路径 db.serialize(() => { db.run("CREATE TABLE lorem (info TEXT)"); let stmt = db.prepare("INSERT INTO lorem VALUES (?)"); for (let i = 0; i < 10; i++) { stmt.run("Ipsum " + i); } stmt.finalize(); });
选择哪种方法取决于具体需求,如数据量、查询复杂度等。