91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解利用nodejs對本地json文件進行增刪改查

發布時間:2020-09-24 10:34:46 來源:腳本之家 閱讀:221 作者:三哥玩前端 欄目:web開發

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

1.增

首先我們先看一下demo的目錄結構

詳解利用nodejs對本地json文件進行增刪改查

我們看一下person.json的內容

詳解利用nodejs對本地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)//執行一下;

結果如下

詳解利用nodejs對本地json文件進行增刪改查

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

詳解利用nodejs對本地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);//執行一下

詳解利用nodejs對本地json文件進行增刪改查

詳解利用nodejs對本地json文件進行增刪改查

第5個就刪除了

3.改

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

詳解利用nodejs對本地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)//執行一下;

結果如下

詳解利用nodejs對本地json文件進行增刪改查

看一下json文件

詳解利用nodejs對本地json文件進行增刪改查

修改成功!!!!

4.查

現在模擬一下分頁

先看一下json文件長什么樣

詳解利用nodejs對本地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條

執行結果為

詳解利用nodejs對本地json文件進行增刪改查

下面看一下第二頁

執行pagination(1,6);

執行結果為

詳解利用nodejs對本地json文件進行增刪改查

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

5.總結

ok,一套基本的增刪改查就這樣寫完了,感覺node還是特別強大的,感覺自己又進步了一些,雖然可能有人覺得這樣寫沒有意義,也許吧,但是我覺得很有意義,讓我也收獲了不少!!!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西贡区| 阳曲县| 乌鲁木齐县| 揭东县| 吉木乃县| 牙克石市| 冀州市| 河曲县| 南木林县| 博白县| 当涂县| 博野县| 宕昌县| 沅陵县| 太原市| 江陵县| 祁阳县| 上蔡县| 钟山县| 宜春市| 阿城市| 峨山| 格尔木市| 桃园县| 河池市| 蕲春县| 磐石市| 鄂温| 洞口县| 阜阳市| 买车| 平江县| 阳城县| 盐池县| 萝北县| 宁乡县| 黔南| 鄂托克前旗| 潼关县| 石楼县| 长泰县|