首页 > 编程语言 >How to fix Node.js fs.readFileSync toString Error All In One

How to fix Node.js fs.readFileSync toString Error All In One

时间:2023-09-12 21:23:42浏览次数:46  
标签:Node fs console log fix json file const

How to fix Node.js fs.readFileSync toString Error All In One

SyntaxError: Unexpected end of JSON input ❌

error

fs.writeFile & fs.readFileSync 匹配错误

image

  async appendFile(group) {
    console.log(`append`)
    const file = path.join(__dirname + `/videos.json`);
    const data = fs.readFileSync(file);
    console.log(`❌ data`, data, data.toString())
    // const obj = JSON.parse(data.toString());
    const obj = JSON.parse(data);
    const json = [
      ...obj,
      group,
    ];
    await fs.writeFile(file, JSON.stringify(json, null, 4), (err) => {
      if(err) {
        console.log(`err ❌`)
      } else {
        console.log(`OK ✅`)
      }
    });
  }
  async writeJSONFile() {
    const file = path.join(__dirname + `/videos.json`);
    for (const group of this.groups) {
      // console.log(`group`, group)
      // console.log(`file`, file)
      if (!fs.existsSync(file)) {
        // create
        // console.log(`create`)
        const json = [group];
        // console.log(`json`, json)
        await fs.writeFile(file, JSON.stringify(json, null, 4), (err) => {
          if(err) {
            console.log(`err ❌`)
          } else {
            console.log(`OK ✅`)
          }
        });
      } else {
        // append
        await this.appendFile(file, group);
      }
    }
  }

solution

readFileSync & writeFileSync 同步方式读写,文件

  async appendFile(group) {
    console.log(`append`)
    const file = path.join(__dirname + `/videos.json`);
    const data = fs.readFileSync(file);
    console.log(`❌ data`, data, data.toString())
    // const obj = JSON.parse(data.toString());
    const obj = JSON.parse(data);
    const json = [
      ...obj,
      group,
    ];
    fs.writeFileSync(file, JSON.stringify(json, null, 4), (err) => {
      if(err) {
        console.log(`err ❌`)
      } else {
        console.log(`OK ✅`)
      }
    });
  }
  async writeJSONFile() {
    const file = path.join(__dirname + `/videos.json`);
    for (const group of this.groups) {
      // console.log(`group`, group)
      // console.log(`file`, file)
      if (!fs.existsSync(file)) {
        // create
        // console.log(`create`)
        const json = [group];
        // console.log(`json`, json)
        fs.writeFileSync(file, JSON.stringify(json, null, 4), (err) => {
          if(err) {
            console.log(`err ❌`)
          } else {
            console.log(`OK ✅`)
          }
        });
      } else {
        // append
        await this.appendFile(file, group);
      }
    }
  }

demos

(

标签:Node,fs,console,log,fix,json,file,const
From: https://www.cnblogs.com/xgqfrms/p/17697836.html

相关文章

  • vscode 终端报错:无法加载文件 D:\nodejs\npm.ps1,因为在此系统上禁止运行脚本。
    问题:vscode终端执行npm指令时报错如下解决:1.在终端通过输入指令get-ExecutionPolicy得到以下结果:表示当前执行策略为受限的2.执行指令Set-ExecutionPolicy-ScopeCurrentUser,并输入RemoteSigned。Set-ExecutionPolicy语法如下:Set-ExecutionPolicy[-Execu......
  • [VLDB 2012]Efficient Subgraph Matching on Billion Node Graphs
    [VLDB2012]EfficientSubgraphMatchingonBillionNodeGraphs重点了解实现star-join的具体过程。分解query和STwigs排序文中把star叫做STwigs,每一个STwigs查询为\(q=(r,L)\),其中r是跟节点标签,L是子节点标签合集。点的选择性:\(f(v)=deg(v)/freq(v.label)\)分解算法:每次......
  • Oracle 引发No space left on device+扩容Inode
    Oracle引发Nospaceleftondevice+扩容Inode背景很久没遇到数据库存储和文件系统相关的问题,碰到了就复习一下。现象是:某个小应用跑在很老的服务器上【准备淘汰废弃待定中】,突然应用报错,检查发现是数据库查询插入都异常了【自建oracle数据库】,这时候登上数据库服务器,查看一下......
  • windows管理多个node版本
    windows管理多个node版本1.下载nvm并安装nvm下载路径:https://github.com/coreybutler/nvm-windows/releases安装前,先把系统原有的nodejs卸载掉,以免之后导致切换失败2.安装node使用nvminstall14/nvminstall18安装14版本和18版本的node(默认会安装最新最稳定版本),完......
  • yarn install error node-sass: Command failed.
    运行yarninstall报错,如下图:运行npminstall也报错,如下图:如果发生上诉的错误,建议优先考虑是node.js的版本问题我的node.js版本是16,卸载16,安装14版本,运行不再报错......
  • 2013_q2bfsm
    moduletop_module(inputclk,inputresetn,//active-lowsynchronousresetinputx,inputy,outputf,outputg);parameterA=0,B=1,C=2,D=3,E=4,F=5,G=6,H=7,ON=14,OFF=15;reg[3:0]state,nst......
  • linux NFS报错 无法重启rpcbind
    Failedtoregister(statd,1,tcp6/udp):svc_reg()err:RPC:Remotesystemerror-Noroutetohost 解决方案:net.ipv6.conf.all.disable_ipv6=0net.ipv4.conf.all.accept_redirects=0vi/etc/sysctl.conf==>net.ipv6.conf.all.disable_ipv6=0==>net.ipv4.c......
  • RTMP视频服务器EasyDSS互联网视频直播点播平台如何基于FastDFS、ffmpeg、videojs实现
    互联网视频直播点播EasyDSS平台能实现视频流媒体的上传、转码、存储、录像、推流、拉流、直播等功能,在场景上,可以应用到互联网教育、在线课堂、游戏直播、视频点播、无人机等领域。 视频点播平台是指提供用户上传、存储和播放视频内容的在线平台。它可以让用户随时随地观看各......
  • .NET Core(C#)通过SharpCifs访问操作Windows(smb)共享目录方法代码
    .NETCore(C#)通过SharpCifs访问操作Windows(smb)共享目录方法代码本文主要介绍.NETCore中,使用SharpCifs访问windows共享目录或smb协义共享目录,或操作共享文件的方法代码。 1、SharpCifs的安装引用使用Nuget管理工具搜索"SharpCifs"=>找到选择"安装"相关文档:VS(Vis......
  • 【Flink系列十八】HDFS_DELEGATION_TOKEN过期的问题解决汇总
    问题类别Spark框架自身的问题Hadoop全家桶的问题开发者通过Hive,HDFS,HBASE访问HDFS的问题排查已知Hadoop-common-2.6.0的UGI存在bug,代码为HADOOP-10786,该问题在CDH发行版中已经修复,但Apache版本存在问题。已知HDFS也存在一个HDFS_DELEGATION_TOKEN过期的bug,代码为HDFS-9......