无法在Node Webkit中写入/附加到JSON文件

时间:2016-08-17 15:27:16

标签: node.js node-webkit nw.js

我想在%AppData%的.json文件中拥有持久性内存(存储用户的进度)。我尝试根据this帖子这样做,但它不起作用。出于测试目的,我只处理存储一个对象。

以下代码根本不起作用。如果我使用fs.open(filePath, "w", function(err, data) { ...而不是readFile(...,它会在%AppData%中创建一个json文件,但是它不会向它写任何内容,它总是0字节。

var nw = require('nw.gui');
var fs = require('fs');
var path = require('path');

var file = "userdata.json";

var filePath = path.join(nw.App.dataPath, file);

console.log(filePath); // <- This shows correct path in Application Data.

fs.readFile(filePath ,function (err, data) {
var idVar = "1";
var json = JSON.parse(data);
json.push("id :" + idVar);
fs.writeFile(filePath, JSON.stringify(json));
});

如果有人知道我搞砸了这个问题,我将不胜感激。

修改

解决了,谢谢kailniris。

我只是想解析一个空文件

1 个答案:

答案 0 :(得分:0)

您尝试阅读的文件中没有json。在解析数据之前,请检查文件是否为空。如果是,则创建一个空的json,将新数据推入其中,然后将其写入文件,否则解析文件中的json。