亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

基于Koa(nodejs框架)對json文件進行增刪改查的示例代碼

2019-11-19 12:10:46
字體:
來源:轉載
供稿:網友

想使用nodejs(koa)搭建一個完整的前后端,完成數據的增刪改查,又不想使用數據庫,那使用json文件吧。

本文介紹了基于koa的json文件的增、刪、改、查。

代碼準備

const Koa = require('koa')const bodyParser = require('koa-bodyparser')const Router = require('koa-router')const fs = require('fs')const path = require('path')const app = new Koa()const router = new Router()app.use(bodyParser())// 路由const deploy = new Router()// 增刪改查接口,可添加在下面// 裝載所有子路由router.use('/deploy', deploy.routes(), deploy.allowedMethods())app.use(router.routes()).use(router.allowedMethods())app.listen(3000);

json示例

[ {"id": 1, "name": "唐僧"}, {"id": 2, "name": "孫悟空"}, {"id": 3, "name": "豬八戒"}, {"id": 4, "name": "沙和尚"}]

1.新增和修改

新增和修改可以分開,但是為了省代碼就合并在一起了。

deploy.post('/add-modify', async (ctx) => {// 這里使用的bodyParser來解析post請求傳來的數據,id是用來查找之前有的數據并進行修改,新增數據的在前臺應該將id設置為空  let id = ctx.request.body.id  let params = ctx.request.body.params  let writeJson = () => {    return new Promise((resolve,reject)=>{    // fs模塊讀取json文件 對fs、path模塊不熟悉的可以去查下官方文檔      fs.readFile(path.join(__dirname, '/data/project.json'),function(err,data){        if(err){        // 報錯返回          resolve({code: -1, msg: '新增失敗' + err})          return console.error(err);        }        let jsonData = data.toString();//將二進制的數據轉換為字符串        jsonData = JSON.parse(jsonData);//將字符串轉換為json對象        // 有id值=>修改 無id值=>新增        if (id) {          jsonData.splice(jsonData.findIndex(item => item.id === id), 1, params)        } else {        // 有重復 => 返回-1 無重復 => 將params加到json數組末尾          let hasRepeat = jsonData.filter((item) => item.id === params.id);          hasRepeat ? resolve({code: -1, msg: '新增失敗,有重復項目id'}) : jsonData.push(params);        }        //因為nodejs的寫入文件只認識字符串或者二進制數,所以把json對象轉換成字符串重新寫入json文件中        let str = JSON.stringify(jsonData);        fs.writeFile(path.join(__dirname, '/data/project.json'),str,function(err){          if(err){            resolve({code: -1, msg: '新增失敗' + err})          }          resolve({code: 0, msg: '新增成功'})        })      })    })  }  // 返回給前端  ctx.body = await writeJson()})

2.刪除

刪除,這里使用的get方法

deploy.get('/delete', async (ctx) => {  let id = ctx.request.query.id  let deleteJson = () => {    return new Promise((resolve,reject)=>{      fs.readFile(path.join(__dirname, '/data/project.json'),function(err,data){        if(err){          resolve({code: -1, msg: '刪除失敗' + err})          return console.error(err);        }        let jsonData = data.toString();//將二進制的數據轉換為字符串        jsonData = JSON.parse(jsonData);//將字符串轉換為json對象        // 過濾出所存item的id和前端傳來id不等的 item ,下面提供了兩種方法filter和splice        jsonData = jsonData.filter((item) => item.id !== id);        // jsonData.splice(jsonData.findIndex(item => item.id === id), 1)        let str = JSON.stringify(jsonData);        fs.writeFile(path.join(__dirname, '/data/project.json'),str,function(err){          if(err){            resolve({code: -1, msg: '刪除失敗' + err})          }          resolve({code: 0, msg: '刪除成功'})        })      })    })  }  ctx.body = await deleteJson()})

3.查詢

deploy.get('/find', async (ctx) => {// 兩種查詢方式 1.id為空 => 查詢全部 2.id有值 => 查詢單個  let id = ctx.request.query.id  let findJson = () => {    return new Promise((resolve,reject)=>{      fs.readFile(path.join(__dirname, '/data/project.json'),function(err,data){        if(err){          resolve({code: -1, msg: '查詢失敗' + err})          return console.error(err);        }        let jsonData = data.toString();//將二進制的數據轉換為字符串        jsonData = JSON.parse(jsonData);//將字符串轉換為json對象        // 有id值=>單個 無id值=>全部        if (id) {          jsonData = jsonData.filter((item) => item.id === id);          resolve({code: 0, data: jsonData})        } else {          resolve({code: 0, data: jsonData})        }      })    })  }  ctx.body = await findJson()})

當然,上面提供的還沒有支持分頁,想要實現分頁,需求改變json格式,如下:

{ "data": [{"id": 1, "name": "唐僧"},      {"id": 2, "name": "孫悟空"},      {"id": 3, "name": "豬八戒"},      {"id": 4, "name": "沙和尚"}], "currentPage": 1, "pageSize": 4, "pageNum": 1, "total": 4}

新增page一些查詢參數,并在使用傳入的參數取對應數據。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97av在线视频免费播放| 国产精品网址在线| 欧美日韩精品在线播放| 亚洲天天在线日亚洲洲精| 欧美日韩在线视频观看| www.色综合| 久久99久久久久久久噜噜| 午夜精品久久久久久久99黑人| 欧美精品aaa| 欧美人在线视频| 中文字幕国产精品| 精品国产依人香蕉在线精品| 亚洲自拍偷拍一区| 久久久精品国产| 精品中文字幕视频| 国产成人精品久久| 色多多国产成人永久免费网站| 国产精品三级美女白浆呻吟| 日韩高清a**址| 欧美日本亚洲视频| 欧美黄色免费网站| 国产色婷婷国产综合在线理论片a| 国产日韩欧美另类| 欧美国产极速在线| 国产精品免费看久久久香蕉| 亚洲免费av网址| 国产精品成人一区二区三区吃奶| 欧美影院久久久| 国产成人精品在线视频| 日韩欧美国产成人| 欧美孕妇与黑人孕交| 红桃av永久久久| 日韩在线视频免费观看| 中文字幕少妇一区二区三区| 欧美一区二区三区免费视| 亚洲专区中文字幕| 亚洲免费视频一区二区| 国产精品成人va在线观看| 亚洲精品www久久久久久广东| 法国裸体一区二区| 欧美精品免费在线观看| 成人网在线视频| 国模视频一区二区三区| 91国内揄拍国内精品对白| 精品网站999www| 亚洲精品视频网上网址在线观看| 色青青草原桃花久久综合| 成人激情视频免费在线| 国产成人精品最新| 欧美日韩在线一区| 亚洲第一天堂av| 国产精品自产拍在线观看中文| 亚洲国产日韩欧美在线图片| 国产成人精品久久二区二区| 日韩电影在线观看永久视频免费网站| 欧美又大又硬又粗bbbbb| 成人欧美一区二区三区在线湿哒哒| 亚洲国产小视频| 亚洲精品成人免费| 中文字幕在线看视频国产欧美在线看完整| 热草久综合在线| 亚洲精品福利视频| 欧美黑人xxx| 欧美激情视频一区| 国产精品偷伦视频免费观看国产| 亚洲人成免费电影| 欧美精品在线观看| 国产福利精品av综合导导航| 欧美性受xxxx黑人猛交| 色偷偷888欧美精品久久久| 欧美乱妇高清无乱码| 国产精品日日做人人爱| 亚洲日韩中文字幕在线播放| 欧美精品videossex性护士| 精品久久久在线观看| 中文字幕日韩免费视频| 欧美—级a级欧美特级ar全黄| 精品视频在线导航| 亚洲免费小视频| 日韩www在线| 国产成人精品日本亚洲专区61| 日本19禁啪啪免费观看www| 午夜精品久久久久久久久久久久久| 九色精品美女在线| 日韩大片在线观看视频| 国产玖玖精品视频| 精品在线观看国产| 国产精品成人av性教育| 国内精品美女av在线播放| 成人高清视频观看www| 乱亲女秽乱长久久久| 国产自产女人91一区在线观看| 狠狠久久五月精品中文字幕| 久久久精品国产亚洲| 不卡av在线播放| 国产成人精品电影| 国产不卡av在线免费观看| 国产香蕉97碰碰久久人人| 久久久久久国产精品美女| 国产精品第10页| 欧美乱大交做爰xxxⅹ性3| 中文字幕在线观看日韩| 亚洲成人动漫在线播放| 欧美日韩国产成人在线观看| 在线观看日韩专区| 日韩在线观看免费| 大胆人体色综合| 欧美精品免费在线观看| 欧美壮男野外gaytube| 欧美午夜丰满在线18影院| 国产精品白丝av嫩草影院| 欧美一区深夜视频| 美乳少妇欧美精品| 日本在线观看天堂男亚洲| 日韩电影第一页| 国产精品久久久久久久久久久久| 国产精品嫩草影院久久久| 亚洲高清色综合| 日韩欧美精品网址| 91久久精品美女高潮| 午夜精品视频网站| 欧美日韩亚洲激情| 亚洲伊人一本大道中文字幕| 国产欧美一区二区三区在线| 亚洲肉体裸体xxxx137| 国产免费一区二区三区在线能观看| 日本成人在线视频网址| 精品国产欧美一区二区五十路| 日韩精品高清在线观看| 国产午夜精品全部视频在线播放| 亚洲久久久久久久久久| 亚洲а∨天堂久久精品9966| 久久亚洲精品中文字幕冲田杏梨| 欧美成人在线免费| 亚洲毛片在线观看.| 国产97在线视频| 中文国产成人精品久久一| 欧美午夜精品久久久久久人妖| 成人午夜高潮视频| 国产精品久久久久国产a级| 欧美第一淫aaasss性| 精品国产电影一区| 国产精品色午夜在线观看| 国产日韩在线观看av| 亚洲香蕉伊综合在人在线视看| 大荫蒂欧美视频另类xxxx| 国产精品久久久久久久久粉嫩av| 精品福利在线视频| 全亚洲最色的网站在线观看| 国产精品成人av性教育| 国模精品系列视频| 亚洲欧美日韩精品| 一区二区三区无码高清视频| 久久免费观看视频| 狠狠躁天天躁日日躁欧美| 久久午夜a级毛片| 欧美激情国产精品| 国产日韩综合一区二区性色av| 奇米一区二区三区四区久久| 亚洲第一av在线| 动漫精品一区二区| 欧美国产精品人人做人人爱| 日韩高清电影免费观看完整| 久久久精品视频在线观看|