前置條件:
項目目錄:

1. msg.json內容
{
"data": [
{
"id": 1,
"name": "aa"
},
{
"id": 2,
"name": "bb"
},
{
"id": 3,
"name": "cc"
}
],
"total": 3
}
2. revise.js
// 若找不到該模塊,則用npm i fs安裝一下即可
var fs = require('fs');
// 此處為模擬數據,后期會從頁面傳數據
var params = {
"name": "hh"
}
//寫入json文件選項
function reviseData(id, 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對象
//找到對應的數據id進行刪除
for (var i = 0; i < msg.data.length; i++) {
if (id == msg.data[i].id) {
for (var key in params) { //此處的key就是params數據鍵值對中的鍵,也就是將params中傳過來的數據根據鍵名去更新原來此id的數據
if (msg.data[i][key]) {
msg.data[i][key] = params[key];
}
}
}
}
msg.total = msg.data.length; //刷新一下總數,以后分頁會用上
console.log(msg);
var str = JSON.stringify(msg, "", "\t"); //因為nodejs的寫入文件只認識字符串或者二進制數,因此進行必要的轉換
fs.writeFile('./data/msg.json', str, function(err) {
if (err) {
console.error(err);
}
console.log('----------修改成功-------------');
})
})
}
//執行新增數據方法;
reviseData(1, params)
3. 用node執行revise.js,效果如下圖:


可以發現,數據已修改。
【基礎篇】
【參考資料】
前人栽樹后人乘涼,敬編程界的先行者!

https://www.cnblogs.com/eliteboy/p/13272030.html