• node——将数据写入data.json防覆盖


    前续

    1.读取data.json文件内容

    2.判断是否是第一次读取data.json(第一次读取则data.json是没有的)

    3.将data.json数据转为数组list

    4.将写入数据加入数组list

    5.将liist保存如data.json

    代码如下

    else if(req.url.startsWith('/add')&&req.method==='get'){
    
        
    //实现在原来list数组的基础上追加新闻,而不是覆盖
    //读取data.json文件中的数据,并将读取道德数据转化为一个数组
    //此处,读取文件的时候可以直接写一个utf8编码,这样的话,回调函数中的data就是一个字符串了
        fs.readFile(path.join(__dirname,'data','data.json'),'utf8',function(err,data){
            //因为第一次访问网站,data.json文件本身就不存在,所以会有异常
            //这种错误,我们不认为是网站出错了,所以不需要抛出异常
            if(err&&err.code!=='ENOENT'){
                throw err;
            }
            //如果data没有读取到,则data为空,转换为数组
            var list=JSON.parse(data||[]);
            list.push(urlObj.query);
        //把list数组写入data.json
        //fs.writeFile数据只能传字符串或buffer,可以用JSON.stringify来转换
        fs.writeFile(path.join(__dirname,'data','data.json'),JSON.stringify(list),function(err){
            if(err){
                throw err;
            }
            console.log('ok');
        });
        //3.跳转到新闻列表页
        //设置响应报文头,通过响应报文头告诉浏览器,执行一次页面跳转操作
        //重定向
        res.statusCode=302;//跳转
        res.statusMessage='Found';
        res.setHeader('Location','/');
        res.end();
        });
    
        
        
            
    }
  • 相关阅读:
    洛谷 3455 (莫比乌斯反演优化)
    HDU 1695 GCD (莫比乌斯反演模板)
    BZOJ 2818 Gcd(欧拉函数+质数筛选)
    欧拉函数(总结)
    Matrix(二维树状数组)入门第一题
    P3919 【模板】可持久化数组(可持久化线段树/平衡树)(入门第一题)
    Color the ball(树状数组区间更新+单点求值)
    快写
    欧拉筛
    D. Magic Breeding
  • 原文地址:https://www.cnblogs.com/ellen-mylife/p/10923769.html
Copyright © 2020-2023  润新知