繁体   English   中英

如何使用fs.writeFile从访存API调用响应中创建.json文件

[英]How to create a .json file from fetch API call response using fs.writeFile

我想在本地项目文件夹中生成一个.json文件。 我想将提取API调用响应(是一个对象数组)保存到硬盘上的.json文件中。 这是我的代码:

const fs = require('fs');

导出默认函数getdirectory(token){

return fetch(url, {
                  headers: {Authorization: "Bearer " + token}
                })
                .then((response) => response.json())
                .catch((err) =>{
                    console.log("ERORRRRRRRR @@@@@@" + err);
                })
                .then((response) =>   { 
                    //console.log(response);
                    var jsoncontent = JSON.stringify(response);
                    //console.log(jsoncontent);
                    fs.writeFileSync('files-to-cache.json', jsoncontent, function(err) {

                    if (err) 
                        {console.log("EROROROROROR ****" + err);}
                    else
                        { return response;}
                    });
                   // return response;
                })
                .catch((err) =>{
                    console.log("ERORRRRRRRR $$$$$$" + err);
                })
            };

当我在vs代码中运行代码时,出现以下错误:

未定义不是函数(在'... fs.writeFileSync ...'附近)

似乎发生这种情况是因为在创建json文件时(异步)数据还没有准备好。 一些网站建议使用setTimeOut函数或sf.writeFileSync而不是sf.writeFile。 我都尝试过,但仍然行不通。 您能帮我解决这个问题吗? 非常感谢

您使用的是错误版本的写入文件,有两种不同的类型,请参见下文:

第一个是writeFileSync,它是同步的,并且将阻塞线程,这意味着您的脚本在完成之前无法继续,但最重要的是它不接受回调。

尝试以下方法:

  fs.writeFile('data.json', jsonData, 'utf8', (err) => {
    if (err) throw err
    console.log('File created!`)
  })

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM