1. 程式人生 > 實用技巧 >js對本地檔案增刪改查--增

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,"","\t"); 

重新執行app.js,可以發現,寫入的json已經是我們期待的樣子。

【因為此處並未做資料校驗,因此執行了2次,插入了兩條相同的資料。這個小坑之後再填】

【參考資料】

前人栽樹後人乘涼,敬程式設計界的先行者!