关于javascript:在电子中保存JSON

Saving JSON in Electron

我正在用电子构建一个应用程序。在这个应用程序中,我使用JSON构建一个数据结构。我的数据结构如下:

1
2
3
4
5
6
7
{
  items: [
    { id:1, name:'football' },
    { id:2, name:'soccer ball' },
    { id:3, name:'basketball' }
  ]
}

我想将这个JSON保存到一个名为"data.json"的文件中。我想把它保存到一个文件中,因为我想在应用程序下次启动时加载它。我的挑战是,我不知道如何保存数据。事实上,我甚至不知道该把文件保存在哪里。我是否将其保存在与应用程序相同的目录中?或者我应该使用一些跨平台的方法?

目前,我有以下几点:

1
2
3
4
5
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保存到本地文件系统以供以后使用?


我编写了一个简单的库,您可以使用它,通过一个简单的接口,它还创建了子目录,并使用承诺/回调进行工作。它将把数据保存到app.getpath("app data")中作为根文件夹。

https://github.com/ran-y/电子存储

安装

$ npm install --save electron-storage

使用

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

美国石油学会

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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缺少一种简单的方法来保存和读取应用程序的用户设置。Electron JSON存储实现了一个类似于localStorage的API,用于在app.getPath('userData')定义的操作系统应用程序数据目录中写入和读取JSON对象。


电子以node.js为核心。您可以使用以下内容:

1
2
3
4
5
6
7
8
var fs = require("fs");
read_file = function(file){
     return fs.readFileSync(file, 'utf8');
}

write_file = function(file, output){
    fs.writeFileSync(file, output);
}

它将文件写入..
esourceselectron.asar
enderer,因此用户无法访问它。