最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解利用nodejs對本地json文件進(jìn)行增刪改查

 更新時間:2019年09月20日 10:15:20   作者:三哥玩前端  
這篇文章主要介紹了詳解利用nodejs對本地json文件進(jìn)行增刪改查,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

哈嘍!nodejs的文件系統(tǒng),接觸過node的對node的文件系統(tǒng)肯定不會陌生,這兩天我就在思考一個問題,我是否可以在本地操作我的本地json文件,這樣一個本地的文本數(shù)據(jù)庫就有了,如果是便簽之類,記錄的軟件,我完全可以不用連后臺的數(shù)據(jù)庫,我可以自己操作本地的json文件,自己用node寫后臺,答案是肯定的,下面我們就一起來實現(xiàn)一下吧,對本地json文件的增、刪、改、查

1.增

首先我們先看一下demo的目錄結(jié)構(gòu)

這里寫圖片描述

我們看一下person.json的內(nèi)容

這里寫圖片描述

沒毛病,接下來就是見證奇跡的時刻了

下面寫nodejs的代碼

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

結(jié)果如下

這里寫圖片描述

下面我們來看一下json文件的結(jié)果

這里寫圖片描述

看,json文件已經(jīng)被新增進(jìn)來了

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);
    //把數(shù)據(jù)讀出來刪除
    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);
    //然后再把數(shù)據(jù)寫進(jìn)去
    fs.writeFile('./mock/person.json',str,function(err){
      if(err){
        console.error(err);
      }
      console.log("----------刪除成功------------");
    })
  })
}
deleteJson(5);//執(zhí)行一下

這里寫圖片描述

這里寫圖片描述

第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);
    //把數(shù)據(jù)讀出來,然后進(jìn)行修改
    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)//執(zhí)行一下;

結(jié)果如下

這里寫圖片描述

看一下json文件

這里寫圖片描述

修改成功!?。。?/p>

4.查

現(xiàn)在模擬一下分頁

先看一下json文件長什么樣

這里寫圖片描述

上代碼

var fs = require('fs');
//通過傳回來的頁數(shù),進(jìn)行分頁模擬
function pagination(p,s){
  //p為頁數(shù),比如第一頁傳0,第二頁傳1,s為每頁多少條數(shù)據(jù)
  fs.readFile('./mock/person.json',function(err,data){
    if(err){
      console.error(err);
    }
    var person = data.toString();
    person = JSON.parse(person);
    //把數(shù)據(jù)讀出來
    //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);//查詢第一頁,每頁的數(shù)據(jù)條數(shù)為6條

執(zhí)行結(jié)果為

這里寫圖片描述

下面看一下第二頁

執(zhí)行pagination(1,6);

執(zhí)行結(jié)果為

這里寫圖片描述

以此類推,就實現(xiàn)了模擬分頁的效果

5.總結(jié)

ok,一套基本的增刪改查就這樣寫完了,感覺node還是特別強(qiáng)大的,感覺自己又進(jìn)步了一些,雖然可能有人覺得這樣寫沒有意義,也許吧,但是我覺得很有意義,讓我也收獲了不少?。。?/p>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • NodeJS 實現(xiàn)手機(jī)短信驗證模塊阿里大于功能

    NodeJS 實現(xiàn)手機(jī)短信驗證模塊阿里大于功能

    這篇文章主要介紹了NodeJS 實現(xiàn)手機(jī)短信驗證模塊阿里大于功能,需要的朋友可以參考下
    2017-06-06
  • 使用travis-ci如何持續(xù)部署node.js應(yīng)用詳解

    使用travis-ci如何持續(xù)部署node.js應(yīng)用詳解

    最近在學(xué)習(xí)使用 travis-ci 對項目進(jìn)行持續(xù)集成測試,所以下面這篇文章主要給大家介紹了關(guān)于使用travis-ci如何持續(xù)部署node.js應(yīng)用的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • node.js中的fs.appendFileSync方法使用說明

    node.js中的fs.appendFileSync方法使用說明

    這篇文章主要介紹了node.js中的fs.appendFileSync方法使用說明,本文介紹了fs.appendFileSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • nodejs操作mongodb的填刪改查模塊的制作及引入實例

    nodejs操作mongodb的填刪改查模塊的制作及引入實例

    下面小編就為大家分享一篇nodejs操作mongodb的填刪改查模塊的制作及引入實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • node實現(xiàn)批量上傳本地圖片轉(zhuǎn)為圖片CDN的項目實踐

    node實現(xiàn)批量上傳本地圖片轉(zhuǎn)為圖片CDN的項目實踐

    本文主要介紹了node實現(xiàn)批量上傳本地圖片轉(zhuǎn)為圖片CDN的項目實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 詳解nodejs模板引擎制作

    詳解nodejs模板引擎制作

    本篇文章主要介紹了nodejs模板引擎制作 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • NodeJS學(xué)習(xí)筆記之Connect中間件模塊(二)

    NodeJS學(xué)習(xí)筆記之Connect中間件模塊(二)

    本文續(xù)上文的內(nèi)容,介紹下nodejs中connect中間件的使用方式及用途,希望大家喜歡。
    2015-01-01
  • Nodejs實現(xiàn)的操作MongoDB數(shù)據(jù)庫功能完整示例

    Nodejs實現(xiàn)的操作MongoDB數(shù)據(jù)庫功能完整示例

    這篇文章主要介紹了Nodejs實現(xiàn)的操作MongoDB數(shù)據(jù)庫功能,結(jié)合完整實例形式分析了nodejs針對MongoDB數(shù)據(jù)庫的連接及增刪改查基本操作技巧,需要的朋友可以參考下
    2019-02-02
  • nodejs檢測因特網(wǎng)是否斷開的解決方案

    nodejs檢測因特網(wǎng)是否斷開的解決方案

    這篇文章主要給大家介紹了關(guān)于nodejs如何檢測因特網(wǎng)是否斷開的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用nodejs具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • nodejs中關(guān)于mysql數(shù)據(jù)庫的操作

    nodejs中關(guān)于mysql數(shù)據(jù)庫的操作

    這篇文章主要介紹了nodejs中關(guān)于mysql數(shù)據(jù)庫的操作方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論

丹棱县| 礼泉县| 甘洛县| 汨罗市| 汶川县| 沂南县| 炉霍县| 于田县| 五莲县| 陇川县| 铜陵市| 平罗县| 澄城县| 涿州市| 内江市| 玛沁县| 贵溪市| 海安县| 图们市| 三穗县| 隆子县| 清水河县| 兴安县| 北海市| 息烽县| 修武县| 进贤县| 怀仁县| 绿春县| 四川省| 文登市| 伊金霍洛旗| 宝清县| 榆林市| 榆社县| 衡山县| 绥化市| 姚安县| 海安县| 湛江市| 丁青县|