【问题标题】:Use node.js to save json file使用 node.js 保存 json 文件
【发布时间】:2018-02-14 22:31:04
【问题描述】:

我对 Node 服务器/javacsript 非常陌生。所以如果这可能是愚蠢的,我很抱歉 问题/主题。

我打算创建一个非常简单的解决方案来打开 JSON 文件、加载到列表并将其保存回我的本地磁盘(运行 node.js 服务器)。

你能帮帮我吗,我做错了什么?我正在使用 react 在浏览器中运行应用程序。

index.js 包含

  var fs = require('fs');
  var fileName = './test.json';
  var file = require('./test.json');

  alert(file.name + " " + file.age);

  file.name = "Peter";

  alert(file.name + " " + file.age);
  fs.writeFile('./test.json', JSON.stringify(file), function (err) {
    if (err) return alert(err);
    console.log(JSON.stringify(file));
    alert('writing to ' + fileName);
  });

在我什至无法打开 JSON 文件之前。我需要将此属性包含到 webpack 配置文件中。

node: {
    fs: 'empty'
}

现在我可以打开 JSON 文件,进行虚拟更改,但无法保存。 在 chrome 开发者工具中,它会将“fs.writeFile is not a function”打印到控制台中。

非常感谢。

【问题讨论】:

    标签: javascript json node.js save fs


    【解决方案1】:

    当您在 webpack 配置中包含该属性时

    node: {
      fs: 'empty'
    }
    

    你告诉 webpack 模块 fs 应该只是一个空对象。您可以通过在文件中添加console.log(fs) 来确认它确实是空的。

    除此之外,fs 将无法在您的浏览器中运行。 fs 需要 node.js 运行时(包括非 JavaScript 内容以使其工作),而不是浏览器的运行时。

    如果您希望用户保存文件,则必须使用基于浏览器的保存解决方案。您将无法随意在浏览器的本地存储之外写入类似的文件。

    【讨论】:

    • 感谢您的解释。如果我想存储一些值,比如当用户更改某些内容时从表中保存值,我应该使用 AJAX,对吗?或者你有什么建议?
    • 是的。在浏览器中使用 AJAX 的某种 HTTP API 可以正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 2021-08-07
    • 1970-01-01
    • 2020-07-13
    • 1970-01-01
    • 2013-07-07
    • 2019-09-15
    相关资源
    最近更新 更多