js對本地檔案增刪改查--增
阿新 • • 發佈:2020-12-08
前置條件:
專案目錄:
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次,插入了兩條相同的資料。這個小坑之後再填】
【參考資料】
前人栽樹後人乘涼,敬程式設計界的先行者!
https://www.cnblogs.com/eliteboy/p/13272030.html