【问题标题】:Need help writing json data to json file in a GET function for a REST api需要帮助在 REST api 的 GET 函数中将 json 数据写入 json 文件
【发布时间】:2018-07-06 04:28:33
【问题描述】:

我真的是 json 新手,在写入文件时遇到了麻烦。我正在尝试在 REST api 中编写一个 GET 函数,该函数将从 url 获取信息并将其保存到 json 文件中。我要获取的网址有 3 个组成部分。该函数已成功获取信息,但我不确定如何将其保存到 json 文件中。这是我下面的代码。

app.get('/user', function(req, res){
    response = {
        id : req.query.id,
        hash : req.query.hash,
        size : req.query.size
        };
    console.log(response);
    //var fs = require('fs');
    //var obj = JSON.parse(fs.writeFileSync('userdata.json', 'utf8'));
    //res.status(200).json(obj);
    //res.end(JSON.stringify(response));
});

代码以 json 格式正确打印到终端,但我无法保存数据。谢谢您的帮助。非常感谢。

【问题讨论】:

  • 我评论的地方是我做错了什么
  • writeFileSync() 的第二个参数是你要写入的实际数据,它也只返回undefined 所以对parse() 没有任何作用。
  • 你想把那个json数据写入.json文件并保存吗?
  • 是的,特别是 userdata.json

标签: javascript json rest api server


【解决方案1】:
fs.writeFile('jsonData.json', JSON.stringify(response), function(err) {
               if (err) {
                    console.log('Error found : ' + err.message);    
               } else {
                    //do the rest
               }
});

【讨论】:

  • 你在“做剩下的事情”是什么意思,为了清楚起见,我正在尝试将“响应”保存到 file.json 中
  • fs.writeFile() 正在将您的回复保存到.json 文件中。如果该过程中有任何错误,err 参数将给出。如果代码达到else 条件,则意味着您的文件已正确保存。你可以检查你的根目录。如果您想将文件发送到浏览器端,请查看此链接 [stackoverflow.com/questions/21578208/…
  • 很高兴听到这个消息!
【解决方案2】:

您可以使用 2 种方法来实现这一点

1)通过手动创建json文件并触发点击事件:

        function download() {
            var fileContents=JSON.stringify(jsonObject, null, 2);
            var fileName= "filejson.json";

            var pp = document.createElement('a');
            pp.setAttribute('href', 'data:text/plain;charset=utf-8,' + 
            encodeURIComponent(fileContents));
            pp.setAttribute('download', fileName);
            pp.click();
        }
        setTimeout(function() {download()}, 500);

2) 使用写入文件流:

      obj = JSON.parse(data); //now its an object
      json = JSON.stringify(obj); //convert it back to json
      fs.writeFile('myjsonfile.json', json, 'utf8', function(err) {
          console.log(err); // if there is an error
      });

【讨论】:

    猜你喜欢
    • 2018-10-25
    • 2015-01-22
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 2017-07-13
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多