当前位置: 首页 > 软件库 > 大数据 > 数据存储 >

electron-json-storage

授权协议 Readme
开发语言 C#
所属分类 大数据、 数据存储
软件类型 开源软件
地区 不详
投 递 者 弓宏茂
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

electron-json-storage

Easily write and read user settings in Electron apps

Electron lacks an easy way to persist and read user settings for your application. electron-json-storage implements an API somewhat similar to localStorage to write and read JSON objects to/from the operating system application data directory, as defined by app.getPath('userData').

Related modules:

Installation

Install electron-json-storage by running:

$ npm install --save electron-json-storage

You can require this module from either the main or renderer process (with and without remote).

Running on Electron >10 renderer processes

When loaded in renderer processes, this module will try to make use ofelectron.remote in order to fetch the userData path.

Electron 10 now defaults enableRemoteModule tofalse,which means that electron-json-storage will be able to calculate a data path by default.

The solution is to manually call storage.setDataPath() before reading orwriting any values or setting enableRemoteModule to true.

Documentation

storage.getDefaultDataPath() ⇒ String | Null

This function will return null when running in therenderer process without support for the remote IPCmechanism. You have to explicitly set a data path using.setDataPath() in these cases.

Kind: static method of storage
Summary: Get the default data path
Returns: String | Null - default data path
Access: public
Example

const defaultDataPath = storage.getDefaultDataPath()

storage.setDataPath(directory)

The default value will be used if the directory is undefined.

Kind: static method of storage
Summary: Set current data path
Access: public

Param Type Description
directory String | Undefined directory

Example

const os = require('os');
const storage = require('electron-json-storage');

storage.setDataPath(os.tmpdir());

storage.getDataPath() ⇒ String

Returns the current data path. It defaults to a directory called"storage" inside Electron's userData path.

Kind: static method of storage
Summary: Get current user data path
Returns: String - the user data path
Access: public
Example

const storage = require('electron-json-storage');

const dataPath = storage.getDataPath();
console.log(dataPath);

storage.get(key, [options], callback)

If the key doesn't exist in the user data, an empty object is returned.Also notice that the .json extension is added automatically, but it'signored if you pass it yourself.

Passing an extension other than .json will result in a file createdwith both extensions. For example, the key foo.data will result in a filecalled foo.data.json.

Kind: static method of storage
Summary: Read user data
Access: public

Param Type Description
key String key
[options] Object options
[options.dataPath] String data path
callback function callback (error, data)

Example

const storage = require('electron-json-storage');

storage.get('foobar', function(error, data) {
  if (error) throw error;

  console.log(data);
});

storage.getSync(key, [options])

See .get().

Kind: static method of storage
Summary: Read user data (sync)
Access: public

Param Type Description
key String key
[options] Object options
[options.dataPath] String data path

Example

const storage = require('electron-json-storage');

var data = storage.getSync('foobar');
console.log(data);

storage.getMany(keys, [options], callback)

This function returns an object with the data of all the passed keys.If one of the keys doesn't exist, an empty object is returned for it.

Kind: static method of storage
Summary: Read many user data keys
Access: public

Param Type Description
keys Array.<String> keys
[options] Object options
[options.dataPath] String data path
callback function callback (error, data)

Example

const storage = require('electron-json-storage');

storage.getMany([ 'foobar', 'barbaz' ], function(error, data) {
  if (error) throw error;

  console.log(data.foobar);
  console.log(data.barbaz);
});

storage.getAll([options], callback)

This function returns an empty object if there is no data to be read.

Kind: static method of storage
Summary: Read all user data
Access: public

Param Type Description
[options] Object options
[options.dataPath] String data path
callback function callback (error, data)

Example

const storage = require('electron-json-storage');

storage.getAll(function(error, data) {
  if (error) throw error;

  console.log(data);
});

storage.set(key, json, [options], callback)

Kind: static method of storage
Summary: Write user data
Access: public

Param Type Description
key String key
json Object json object
[options] Object options
[options.dataPath] String data path
[options.validate] String validate writes by reading the data back
[options.prettyPrinting] boolean adds line breaks and spacing to the written data
callback function callback (error)

Example

const storage = require('electron-json-storage');

storage.set('foobar', { foo: 'bar' }, function(error) {
  if (error) throw error;
});

storage.has(key, [options], callback)

Kind: static method of storage
Summary: Check if a key exists
Access: public

Param Type Description
key String key
[options] Object options
[options.dataPath] String data path
callback function callback (error, hasKey)

Example

const storage = require('electron-json-storage');

storage.has('foobar', function(error, hasKey) {
  if (error) throw error;

  if (hasKey) {
    console.log('There is data stored as `foobar`');
  }
});

storage.keys([options], callback)

Kind: static method of storage
Summary: Get the list of saved keys
Access: public

Param Type Description
[options] Object options
[options.dataPath] String data path
callback function callback (error, keys)

Example

const storage = require('electron-json-storage');

storage.keys(function(error, keys) {
  if (error) throw error;

  for (var key of keys) {
    console.log('There is a key called: ' + key);
  }
});

storage.remove(key, [options], callback)

Notice this function does nothing, nor throws any errorif the key doesn't exist.

Kind: static method of storage
Summary: Remove a key
Access: public

Param Type Description
key String key
[options] Object options
[options.dataPath] String data path
callback function callback (error)

Example

const storage = require('electron-json-storage');

storage.remove('foobar', function(error) {
  if (error) throw error;
});

storage.clear([options], callback)

Kind: static method of storage
Summary: Clear all stored data in the current user data path
Access: public

Param Type Description
[options] Object options
[options.dataPath] String data path
callback function callback (error)

Example

const storage = require('electron-json-storage');

storage.clear(function(error) {
  if (error) throw error;
});

Support

If you're having any problem, please raise an issue on GitHub and we'll be happy to help.

Tests

Run the test suite by doing:

$ npm test

Contribute

Before submitting a PR, please make sure that you include tests, and that jshint runs without any warning:

$ npm run-script lint

License

The project is licensed under the MIT license.

  • 简介 在开发 electron 桌面端的时候,会遇到各种各样的坑,稍微总结下。 安装electron依赖 本地数据库选择 自动升级 网络检查(window) 主进程http请求客户端 下载文件 http请求客户端 IPC 通讯(渲染window 发送消息给主进程) IPC 通讯(主进程发送消息给渲染window) 设置开机启动项 其他应用唤醒客户端 全局快捷键 托盘 应用菜单(mac) 国际化 T

  • 作为一个开发人员,工作中需要经常进行host切换,快速在不同环境中进行开发测试,阿里内部有个iHost,用起来简单顺手,可惜并没有开放,离开后没有找到一款更好的用的host切换工具,索性自己写一个。项目已经开源 代码地址 , 欢迎吐槽。 所用到的技术 因为是桌面应用,作为一个前端开发,目前的首选自然是eletron, 前端框架选择react技术栈。 项目基于 electron-react0-boi

  • 一、Electron 是什么? 基于chrome 内核 + nodeJS 服务 + Html5 展现来开发的桌面软件,可以轻易的跨平台。例如Visual Studio Code、Slack 、Atom 等等桌面端软件都是使用Electron 开发的。 二、技术选型 1.框架 Electron VS NW.js Electron 前身是atomshell,NW.js 前身是Node-Webkit。区

  • 1. 安装yarn及本地模块依赖 推荐使用管理员进行安装(win10右击开始栏windows选择Windows PowerShell(管理员)) npm install --global yarn npm install -g node-gyp npm install --global --production windows-build-tools 2. 创建electron-vue项目 //

  • electron主进程中是不能获取到浏览器的window对象的,所以我们不能像在渲染进程中一样使用浏览器为我们提供的localstorage对象。 但是主进程中有可能也需要这样的需求,比如我们在本地存储了当前的环境(dev/beta/prod),主进程需要根据不同的开发环境来load不同的url。 于是手动封装了一个可以在主进程中调用的localstorage。 1.安装 npm install

  • 使用 React+Typescript+Electron 开发跨平台桌面应用 简介 electron 是跨平台桌面应用开发工具,electron 的工作原理大致就是使用 V8 引擎运行 web 应用,于浏览器运行 web 应用的区别就是 electron 支持所有的 NodeJs 的 api(能力),我们可以使用 electron 调用很多浏览器无法调用的操作系统的能力,比如操作文件系统等等。 E

  • 结合electron-updater包与downloadItem类实现 主要流程: 1.通过electron-updater检查更新,返回升级 2.判断是否执行静默升级(检查本地安装包的完整性) 3.通过downloadItem执行下载,它可以实行暂停与恢复 4.下载完成后通过execSync执行安装包,关闭应用 electron-updater中逻辑不变,可参考:【electron】应用在线升级

  • 主进程和渲染进程 在桌面端应用中,进程分为主进程和渲染进程。 以 electron + vue 为例: 采用发布订阅模式,主进程通过 ipcMain.on 接收渲染进程发送的事件, 通过 mainWindow.webContents.send 发送事件 vue入口文件中通过 ipcRenderer.send 发送该事件 ,ipcRenderer.on接收事件 localStorage,sessio

 相关资料
  • Electron Electron / Electron Documentation Electron github / Electron github docs zh-CN Electron 是什么 Electron 是一个能让你通过 JavaScript、 HTML 和 CSS 构建桌面应用的库 。这些应用能打包到 Mac 、 Windows 和 Linux 电脑上运行,当然它们也能上架到 M

  • Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台的桌面应用程序。它基于 Node.js 和 Chromium,被 Atom 编辑器和许多其他应用程序使用。 Electron 兼容 Mac、Windows 和 Linux,可以构建出三个平台的应用程序。

  • Package time feature toggles What are fuses? For a subset of Electron functionality it makes sense to disable certain features for an entire application. For example, 99% of apps don't make use of ELE

  • electron-vue 是一个基于 vue 来构造 electron 应用程序的样板代码。 概要 该项目的目的,是为了要避免使用 vue 手动建立起 electron 应用程序。electron-vue 充分利用 vue-cli 作为脚手架工具,加上拥有 vue-loader 的 webpack、electron-packager 或是 electron-builder,以及一些最常用的插件,如

  • 基于 Electron 桌面开发平台的自研应用框架 Sugar-Electron,期望能改善 Electron 应用稳定性和帮助开发团队降低开发和维护成本。 关于应用稳定性 Electron应用程序有三大基础模块: 主进程 渲染进程 进程间通信 由于我们属于多窗口(多渲染进程)的应用,所以我们会把窗口公共的服务模块都写到主进程模块,这为整个程序的稳定性埋下了隐患。 在Electron中,主进程控制

  • electron-player 是一个基于 electron-vue 的音视频播放器。 相关技术 electron:负责构建播放器的所需要的环境,提供访问系统资源的api(调用资源管理器,浏览器等等)以及打包成桌面应用程序 vue:负责构建播放器的界面 node:负责处理文件和路径问题,主要使用fs和path这2个模块 express:负责把视频读取出来,把视频以流的形式返回 html5相关技术: