【问题标题】:Can't write/append to JSON file in Node Webkit无法在 Node Webkit 中写入/附加到 JSON 文件
【发布时间】:2016-12-24 08:26:18
【问题描述】:

我想在 %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。

我只是想解析一个空文件

【问题讨论】:

  • 查看后台页面控制台是否有错误。节点上下文错误将在那里记录。右键单击窗口,然后检查背景页面。
  • 未捕获的语法错误:JSON 输入意外结束
  • 哪一行?您的 json 有问题,或者您想将空数据解析为 json。解析前的 Console.log(data)
  • 它是“var json = JSON.parse(data);”。是的,显然它是空的。非常感谢,现在可以正常使用了。顺便说一句,有没有办法解决这个问题?毕竟,必须有第一个条目。
  • 好吧,在尝试解析之前检查它是否为空...

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 2022-12-18
    • 2021-02-19
    • 2014-06-11
    • 2021-10-26
    • 2022-01-20
    • 2016-10-27
    相关资源
    最近更新 更多