NodeJS_0005:nodejs對本地json文件進行增刪改查


1,

##1.增
首先我們先看一下demo的目錄結構

 

 我們看一下person.json的內容

 

 下面寫nodejs的代碼

var fs = require('fs');
var params = {
    "id":5,
    "name":"白眉鷹王"
}//在真實的開發中id肯定是隨機生成的而且不會重復的,下一篇寫如何生成隨機切不會重復的隨機數,現在就模擬一下假數據
//寫入json文件選項
function writeJson(params){
    //現將json文件讀出來
    fs.readFile('./mock/person.json',function(err,data){
        if(err){
            return console.error(err);
        }
        var person = data.toString();//將二進制的數據轉換為字符串
        person = JSON.parse(person);//將字符串轉換為json對象
        person.data.push(params);//將傳來的對象push進數組對象中
        person.total = person.data.length;//定義一下總條數,為以后的分頁打基礎
        console.log(person.data);
        var str = JSON.stringify(person);//因為nodejs的寫入文件只認識字符串或者二進制數,所以把json對象轉換成字符串重新寫入json文件中
        fs.writeFile('./mock/person.json',str,function(err){
            if(err){
                console.error(err);
            }
            console.log('----------新增成功-------------');
        })
    })
}
writeJson(params)//執行一下;

 

結果如下

 

 下面我們來看一下json文件的結果

 

 json文件已經被新增進來了

 

##2.刪

var fs = require('fs');
//刪除json文件中的選項
function deleteJson(id){
    fs.readFile('./mock/person.json',function(err,data){
        if(err){
            return console.error(err);
        }
        var person = data.toString();
        person = JSON.parse(person);
        //把數據讀出來刪除
        for(var i = 0; i < person.data.length;i++){
            if(id == person.data[i].id){
                //console.log(person.data[i])
                person.data.splice(i,1);
            }
        }
        console.log(person.data);
        person.total = person.data.length;
        var str = JSON.stringify(person);
        //然后再把數據寫進去
        fs.writeFile('./mock/person.json',str,function(err){
            if(err){
                console.error(err);
            }
            console.log("----------刪除成功------------");
        })
    })
}
deleteJson(5);//執行一下

 

 

 

 第5個就刪除了

 

##3.改

一開始的json文件是這個樣子的

 

 

var fs = require('fs');
var params = {
    "name":"孫悟空"
}
function changeJson(id,params){
    fs.readFile('./mock/person.json',function(err,data){
        if(err){
            console.error(err);
        }
        var person = data.toString();
        person = JSON.parse(person);
        //把數據讀出來,然后進行修改
        for(var i = 0; i < person.data.length;i++){
            if(id == person.data[i].id){
                console.log('id一樣的');
                for(var key in params){
                    if(person.data[i][key]){
                        person.data[i][key] = params[key];
                    }
                }
            }
        }
        person.total = person.data.length;
        var str = JSON.stringify(person);
        //console.log(str);
        fs.writeFile('./mock/person.json',str,function(err){
            if(err){
                console.error(err);
            }
            console.log('--------------------修改成功');
            console.log(person.data);
        })
    })
}
changeJson(3,params)//執行一下;

結果如下

 

 看一下json文件

 

 

##4.查

現在模擬一下分頁
先看一下json文件長什么樣

 

 

var fs = require('fs');
//通過傳回來的頁數,進行分頁模擬
function pagination(p,s){
    //p為頁數,比如第一頁傳0,第二頁傳1,s為每頁多少條數據
    fs.readFile('./mock/person.json',function(err,data){
        if(err){
            console.error(err);
        }
        var person = data.toString();
        person = JSON.parse(person);
        //把數據讀出來
        //console.log(person.data);
        var length = person.data.length;
        var pagePerson = person.data.slice(s*p,(p+1)*s);
        console.log('------------------------查詢成功pagePerson');
        console.log(pagePerson);
    })
}
pagination(0,6);//查詢第一頁,每頁的數據條數為6條

 

執行結果為

 

 

下面看一下第二頁
執行pagination(1,6);
執行結果為

 

 

以此類推,就實現了模擬分頁的效果

##5.總結
ok,一套基本的增刪改查就這樣寫完了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM