在 Electron 中节省 JSON
Saving JSON in Electron
我正在使用 Electron 构建应用程序。在此应用程序中,我正在使用 JSON 构建数据结构。我的数据结构如下所示:
{
items: [
{ id:1, name:'football' },
{ id:2, name:'soccer ball' },
{ id:3, name:'basketball' }
]
}
我想将此 JSON 保存到名为 "data.json" 的文件中。我想把它保存到一个文件中,因为我想在下次应用程序启动时加载。我的挑战是,我不知道如何保存数据。事实上,我什至不确定 在哪里 我什至应该保存文件。我是否将其保存在与应用程序相同的目录中?或者我应该使用一些跨平台的方法吗?
目前,我有:
saveClick: function() {
var json = JSON.stringify(this.data);
// assume json matches the JSON provided above.
// Now, I'm not sure how to actually save the file.
}
那么,如何/在哪里将 JSON 保存到本地文件系统以供以后使用?
Electron 缺少一种简单的方法来保存和读取应用程序的用户设置。 electron-json-storage 实现了一个类似于 localStorage
的 API 来写入和读取 JSON 对象 to/from 操作系统应用程序数据目录,由 app.getPath('userData')
定义.
我编写了一个您可以使用的简单库,具有简单的界面,它还创建子目录并与 promises/callbacks 一起使用。
它会将数据保存到 app.getPath("appData") 作为根文件夹。
https://github.com/ran-y/electron-storage
安装
$ npm install --save electron-storage
用法
const storage = require('electron-storage');
API
storage.get(filePath, (err, data) => {
if (err) {
console.error(err)
} else {
console.log(data);
}
});
storage.get(filePath)
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
storage.set(filePath, data, (err) => {
if (err) {
console.error(err)
}
});
storage.set(filePath, data)
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
Electron 以 node.js 为核心。您可以使用以下内容:
var fs = require("fs");
read_file = function(path){
return fs.readFileSync(path, 'utf8');
}
write_file = function(path, output){
fs.writeFileSync(path, output);
}
对于 write_file()
,您可以传递 "document.txt"
作为路径,它会将其写入与 运行 来自的 html 文件相同的目录。您也可以输入完整路径,例如 "C:/Users/usern/document.txt"
,它会写入您想要的特定位置。
另外,您可以选择任何您想要的文件扩展名(即“.txt”、“.js”、“.json”等)。您甚至可以自己制作!
`const fs = require('fs');
let student = {
name: 'Mike',
age: 23,
gender: 'Male',
department: 'English',
car: 'Honda'
};
let data = JSON.stringify(student, null, 2);
fs.writeFile('student-3.json', data, (err) => {
if (err) throw err;
console.log('Data written to file');
});
console.log('This is after the write call');`
有多个步骤:
步骤 1:
从版本 5 开始,nodeIntegration 的默认值从 true 更改为 false。您可以在创建浏览器时启用它 Window:
const createWindow = () => {
const win = new BrowserWindow({
width: 1000,
height: 800,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
}
})
}
步骤 2:
function writetofile() {
let configsettings = {
break: output.innerHTML,
alwaysonoff: toggleoutput.innerHTML,
};
let settings_data = JSON.stringify(configsettings, null, 2);
const fs = require("fs");
fs.writeFileSync("assets/configs/settings.json", settings_data);
}
我正在使用 Electron 构建应用程序。在此应用程序中,我正在使用 JSON 构建数据结构。我的数据结构如下所示:
{
items: [
{ id:1, name:'football' },
{ id:2, name:'soccer ball' },
{ id:3, name:'basketball' }
]
}
我想将此 JSON 保存到名为 "data.json" 的文件中。我想把它保存到一个文件中,因为我想在下次应用程序启动时加载。我的挑战是,我不知道如何保存数据。事实上,我什至不确定 在哪里 我什至应该保存文件。我是否将其保存在与应用程序相同的目录中?或者我应该使用一些跨平台的方法吗?
目前,我有:
saveClick: function() {
var json = JSON.stringify(this.data);
// assume json matches the JSON provided above.
// Now, I'm not sure how to actually save the file.
}
那么,如何/在哪里将 JSON 保存到本地文件系统以供以后使用?
Electron 缺少一种简单的方法来保存和读取应用程序的用户设置。 electron-json-storage 实现了一个类似于 localStorage
的 API 来写入和读取 JSON 对象 to/from 操作系统应用程序数据目录,由 app.getPath('userData')
定义.
我编写了一个您可以使用的简单库,具有简单的界面,它还创建子目录并与 promises/callbacks 一起使用。 它会将数据保存到 app.getPath("appData") 作为根文件夹。
https://github.com/ran-y/electron-storage
安装
$ npm install --save electron-storage
用法
const storage = require('electron-storage');
API
storage.get(filePath, (err, data) => {
if (err) {
console.error(err)
} else {
console.log(data);
}
});
storage.get(filePath)
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
storage.set(filePath, data, (err) => {
if (err) {
console.error(err)
}
});
storage.set(filePath, data)
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err);
});
Electron 以 node.js 为核心。您可以使用以下内容:
var fs = require("fs");
read_file = function(path){
return fs.readFileSync(path, 'utf8');
}
write_file = function(path, output){
fs.writeFileSync(path, output);
}
对于 write_file()
,您可以传递 "document.txt"
作为路径,它会将其写入与 运行 来自的 html 文件相同的目录。您也可以输入完整路径,例如 "C:/Users/usern/document.txt"
,它会写入您想要的特定位置。
另外,您可以选择任何您想要的文件扩展名(即“.txt”、“.js”、“.json”等)。您甚至可以自己制作!
`const fs = require('fs');
let student = {
name: 'Mike',
age: 23,
gender: 'Male',
department: 'English',
car: 'Honda'
};
let data = JSON.stringify(student, null, 2);
fs.writeFile('student-3.json', data, (err) => {
if (err) throw err;
console.log('Data written to file');
});
console.log('This is after the write call');`
有多个步骤:
步骤 1:
从版本 5 开始,nodeIntegration 的默认值从 true 更改为 false。您可以在创建浏览器时启用它 Window:
const createWindow = () => {
const win = new BrowserWindow({
width: 1000,
height: 800,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
}
})
}
步骤 2:
function writetofile() {
let configsettings = {
break: output.innerHTML,
alwaysonoff: toggleoutput.innerHTML,
};
let settings_data = JSON.stringify(configsettings, null, 2);
const fs = require("fs");
fs.writeFileSync("assets/configs/settings.json", settings_data);
}