日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

koa --- [MVC实现之一]自定义路由读取规则

發布時間:2023/12/10 c/c++ 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 koa --- [MVC实现之一]自定义路由读取规则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實現MVC分層架構

  • 目標是創建約定大于配置、開發效率高、可維護性強的項目架構
  • 路由處理
    • 規范
      • 所有路由,都要放在routes文件夾中
      • 若導出路由對象,使用 動詞+空格+路徑 作為key, 值是操作方法
      • 若導出函數, 則函數返回第二條約定格式的對象
    • 路由定義:
      • 新建 router/index.js, 默認index.js沒有前綴
      module.exports = {'get /':async ctx => {ctx.body = '首頁'},'get /detail': ctx => {ctx.body = '詳情頁面'} }
      • 新建 router/user.js路由前綴是/user
      module.exports = { 'get /': async ctx => {ctx.body = '用戶首頁' }, 'get /detail': async ctx => {ctx.body = '用戶詳情頁面' }

}
````

新建目錄結構如下

/mar/mar-load.js

  • load函數,根據傳入的參數(‘routes’),讀取目錄及其內容,將得到參數該回調函數
  • 說明:
  • __dirname: 保存的是當前文件夾的路徑
  • fs.readdirSync: 同步獲取當前文件夾下的文件
  • require(filename): 獲取文件夾中的內容
  • const path = require('path'); const fs= require('fs'); const load = async (dir, cb) =>{// 獲取dir的路徑const url = path.resolve(__dirname, dir);// 獲取dir文件夾下的文件內容const files = fs.readdirSync(url);// 遍歷文件files.forEach((filename) =>{// 去掉擴展模filename = filename.replace('.js', '');const routes= require(`${url}/${filename}`);cb(filename, routes);}) }
    • initRouter函數:
  • 使用koa-router將路由和路由處理函數關聯起來
  • 根據load函數傳來的函數名,添加路由前綴
  • const Router = require('koa-router'); const initRouter = () =>{const router = new Router();load("routes", (filename, routes) =>{const prefix = filename === 'index' ? '' : '${filename}';Object.keys(routes).forEach( key =>{const [ method, path ] = key.split(' ');// 注冊路由router[method](prefix + '/' + path, routes[key]);})})return router }
    • 總體代碼如下
    • /mar/mar-load.js
    const fs = require('fs'); const path = require('path'); const Router = require('koa-router');// 讀取目錄和路徑 const load = async (dir, cb) => {// 獲取絕對路徑const url = path.resolve(__dirname, dir);// 讀取目錄const files = fs.readdirSync(url);files.forEach((filename) => {// 去掉擴展名filename = filename.replace('.js', '');const routes = require(url + '/' + filename);cb(filename, routes);})}// 加載路由 // app.get('/', ctx => {}) const initRouter = () => {const router = new Router();load('routes', (filename, routes) => {const prefix = filename === 'index' ? '' : `/${filename}`;Object.keys(routes).forEach(key => {const [method, path] = key.split(' ');console.log(`正在映射地址: ${method.toLocaleUpperCase()}${prefix}${path}`);// 注冊路由router[method](prefix + path, routes[key]);})})return router; } module.exports = { initRouter }

    初始化文件

    • /mar/index.js: 為初始文件,負責工作如下:
  • 加載mar-load.js,并執行.
  • 創建一個http服務器監聽3000端口
  • const koa = require('koa'); const app = new koa(); const { initRouter } = require('./mar-load'); app.use(initRouter().routes()); app.listen(3000);

    啟動

    node index.js

    總結

    以上是生活随笔為你收集整理的koa --- [MVC实现之一]自定义路由读取规则的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 精品人妻中文无码av在线 | 国产福利视频导航 | 日本亲与子乱xxx | 免费看国产一级片 | 人人舔人人爽 | av午夜在线观看 | 青娱乐最新官网 | 欧美色图自拍 | 114国产精品久久免费观看 | 日本不卡一区在线观看 | 亚洲一级大片 | 超碰中文在线 | 欧美久久一区二区三区 | 免费在线看黄网站 | 日韩一区在线播放 | 蜜臀久久精品 | 男人懂的网站 | 麻豆传媒一区二区 | 精品国产乱码一区二区 | 岳奶大又白下面又肥又黑水多 | 久久一区二区三区视频 | 91精品国产综合久久精品 | 在线一级视频 | 美女久久久久久 | 91黑丝在线观看 | 97在线免费观看视频 | 短篇山村男同肉耽h | 调教少妇视频 | 嫩草视屏 | 毛片xxx | av在线超碰| 日本福利视频一区 | 成品人视频ww入口 | 亚洲伦理在线视频 | 美女被揉胸视频 | 国产欧美日韩久久 | 天堂网在线最新版www中文网 | 日韩视频一区在线 | 亚洲欧美国产高清va在线播放 | 色男人网| 国产综合无码一区二区色蜜蜜 | 日韩乱码人妻无码系列中文字幕 | 国产视频污在线观看 | 久久亚洲精品视频 | 成人a在线 | 成人深夜影院 | 黄色一级片在线 | 啄木乌欧美一区二区三区 | 麻豆com| 亚洲色图19p | 欧美在线视频免费观看 | 欧美视频直播网站 | 国产精品美女www | 日韩精品麻豆 | 国产日产亚洲精品 | 亚洲视频在线免费看 | 国产视频1区| 波多野吉衣在线视频 | 又黄又骚的视频 | 亚洲综人网 | 免费一级a毛片夜夜看 | 正在播放国产一区 | 偷拍超碰 | 男同av在线观看一区二区三区 | 亚洲欧美日韩国产 | 91水蜜桃 | 天天玩天天干 | 国产欧美日韩精品一区 | 啪视频在线 | 国产精品一区不卡 | 美女mm131爽爽爽免费动视频 | 国产在线精品视频 | 在线免费观看国产精品 | 成人h片 | 欧美欧美欧美 | 91精品婷婷国产综合久久竹菊 | 亚洲国产精品av | 99爱在线 | 亚洲图片综合区 | 日本αv | 国产精品 色 | 你懂的网站在线 | 羞羞在线观看 | 1024精品一区二区三区日韩 | 国产一区二区影院 | 午夜免费福利影院 | 久久片| 亚洲欧美激情图片 | 最新最近中文字幕 | 国产一级视频免费观看 | 日本三级中文字幕在线观看 | 国产一久久 | 少妇精品亚洲一区二区成人 | se婷婷| 久久私人影院 | www.亚洲天堂 | 香蕉久热 | 日韩毛片网 | 亚洲一 |