无法在 Node Webkit 中 write/append 到 JSON 文件
Can't write/append to JSON file in Node Webkit
我想在 %AppData% 的 .json 文件中拥有持久内存(存储用户的进度)。我试过按照post来做,但是不行。出于测试目的,我只存储一个对象。
下面的代码根本不起作用。如果我使用 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。
我只是想解析一个空文件
您尝试读取的文件中没有 json。在解析数据之前检查文件是否为空。如果它是然后创建一个空 json,将新数据推入其中然后将其写入文件,否则解析文件中的 json。
我想在 %AppData% 的 .json 文件中拥有持久内存(存储用户的进度)。我试过按照
下面的代码根本不起作用。如果我使用 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。
我只是想解析一个空文件
您尝试读取的文件中没有 json。在解析数据之前检查文件是否为空。如果它是然后创建一个空 json,将新数据推入其中然后将其写入文件,否则解析文件中的 json。