zoukankan      html  css  js  c++  java
  • 【基础篇】js对本地文件增删改查--增

    前置条件:

    1. 本地有安装node,点击传送门

    项目目录:

     1. msg.json内容

    {
        "data": [
            {
                "id": 1,
                "name": "aa"
            },
            {
                "id": 2,
                "name": "bb"
            },
            {
                "id": 3,
                "name": "cc"
            },
            {
                "id": 4,
                "name": "dd"
            }
        ],
        "total": 4
    }

    2. add.js

    // 若找不到该模块,则用npm i fs命令安装一下即可
    var fs = require('fs');
    
    var params = {
        "id":5,
        "name":"ee"
    }
    //写入json文件选项
    function addData(params){
        //现将json文件读出来
        fs.readFile('data/msg.json',function(err,data){
            if(err){
                return console.error(err);
            }
            var msg = data.toString();			//将二进制的数据转换为字符串
            msg = JSON.parse(msg);				//将字符串转换为json对象
            msg.data.push(params);				//将传来的对象push进数组对象中,此处用的模拟数据parms,以后从页面获取数据
            msg.total = msg.data.length;		//刷新一下总数,以后分页会用上
            console.log(msg.data);
            var str = JSON.stringify(msg);		//因为nodejs的写入文件只认识字符串或者二进制数,因此进行必要的转换
            fs.writeFile('./data/msg.json',str,function(err){
                if(err){
                    console.error(err);
                }
                console.log('----------新增成功-------------');
            })
        })
    }
    
    //执行新增数据方法;
    addData(params)	
    

    3. 用node执行add.js,效果如下图:

     

     可以发现,数据已插入。但是有个问题,数据变成一行了,这样可读性很差。我们需要在add.js中进行一点修改,如下

    //因为nodejs的写入文件只认识字符串或者二进制数,因此进行必要的转换。另外,此种写法可以美化写入的json样式
    var str = JSON.stringify(msg,"","	"); 

    重新执行app.js,可以发现,写入的json已经是我们期待的样子。

    【因为此处并未做数据校验,因此执行了2次,插入了两条相同的数据。这个小坑之后再填】

    【基础篇】

    js对本地文件增删改查--增

    js对本地文件增删改查--删

    js对本地文件增删改查--改

    js对本地文件增删改查--查

    【参考资料】

    前人栽树后人乘凉,敬编程界的先行者!

  • 相关阅读:
    pat1038. Recover the Smallest Number (30)
    pat1037. Magic Coupon (25)
    pat1036. Boys vs Girls (25)
    pat1031. Hello World for U (20)
    pat1030. Travel Plan (30)
    pat1028. List Sorting (25)
    pat1027. Colors in Mars (20)
    pat1017. Queueing at Bank (25)
    pat1025. PAT Ranking (25)
    Reverse Linked List II
  • 原文地址:https://www.cnblogs.com/blogNGNL/p/14103863.html
Copyright © 2011-2022 走看看