nodejs对json文件的读写

需要反复写入数据到json文件中的时候,要以对象数组的方式写入文件中;写入数据时候,数据需要以字符串存入,因此需要使用JSON.stringify();方法来讲数据转成字符串;而从文件中读取数据之后,需要将buff流通过toString()转换成字符串,然后将通过JSON.parse()方法字符串转成对象数组,添加新数据;再重新写入文件;

代码如下:

 let data = [];  //  文件的内容
    let obj = req.query;
    // 转成字符串 存入 user.json 文件中  

    // 如果文件存在 读取数据 fs.existsSync(path)
    let pathFile = path.resolve(__dirname, 'user.json');
    if (fs.existsSync(pathFile)) {
        // 文件存在 读取数据    fs.readFileSync(path[, options])
        fs.readFile(pathFile, (err, da) => {
            if (err) throw err;
            // console.log(da + "2222222222222222222222");
            da = da.toString();
            if (da != '') {
                data = JSON.parse(da);
                data.push(obj);
            } else {
                data.push(obj);
            } 
            // 转成字符串 存入 user.json 文件中 
            var objStr = JSON.stringify(data); 
            
            // 再重新和新的数据一起写入文件中   fs.writeFileSync(file, data[, options])
            // json格式写入  以对象数组方式存入
            fs.writeFileSync(pathFile, objStr);

        });

    } else {
        // 文件不存在
        // 写入数据
        // fs.writeFile(file, data[, options], callback)
        data.push(obj);
        fs.writeFile(path.resolve(__dirname, 'user.json'), JSON.stringify(data), function (err) {
            console.log(err);
        });
    }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值