久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網運營的一線實戰(zhàn)洞察。

Koa2實戰(zhàn)指南:從中間件洋蔥模型到PM2部署全解析

Koa2實戰(zhàn)指南:從中間件洋蔥模型到PM2部署全解析 做Node.js后端的朋友遲早要跟koa打交道。如果你一直用Express寫接口大概能理解那種感覺回調地獄雖然被Promise緩解了但中間件體系還是不夠順手每個業(yè)務里都夾著一堆模板代碼。koa從2015年前后進入大家視野喊出的口號是“小而美”——它不像Express那樣把路由、模板引擎、靜態(tài)服務都內置進去而是只提供一個極簡的HTTP服務內核剩下的路由、參數解析、跨域、日志全部交給社區(qū)中間件自由組合。這篇文章不是官方文檔的復讀我按自己從零上手到上線維護的真實路徑把安裝節(jié)點、中間件洋蔥模型、路由與參數、統(tǒng)一錯誤處理、PM2部署這些環(huán)節(jié)串一遍順便把我在實際開發(fā)里踩過的坑和排查思路寫出來。讀完你不僅能跑起一個koa項目還能知道每行代碼為什么這么寫。1. koa到底解決了什么問題Express太啰嗦異步太難受1.1 回調地獄與“中間件流水線”的舊困擾Node.js剛火那幾年Express是絕對的主流一個接口常常長這樣app.get(/user/:id, function (req, res, next) { User.findById(req.params.id, function (err, user) { if (err) return next(err); res.json({ data: user }); }); });單看這一段還好但真實業(yè)務里往往要查數據庫、調遠程接口、寫緩存、記日志層層嵌套之后就變成了傳說中的“金字塔代碼”一屏都放不下改起來更是膽戰(zhàn)心驚。后來社區(qū)用Promise和async/await做了不少補救但Express的中間件模型還是callback那一套你在async函數里拋出的異常不一定能被框架捕獲往往要自己包一層try/catch。koa的核心思路就是把中間件函數全部統(tǒng)一成async函數形態(tài)讓異常能順著Promise鏈往上傳配合統(tǒng)一的error事件就能全局兜底。用koa寫同樣的查詢接口代碼大概長這樣router.get(/user/:id, async (ctx) { const user await User.findById(ctx.params.id); ctx.body { data: user }; });沒有next(err)傳參沒有res.json手動封裝await完了直接塞給ctx.body整個讀起來和同步代碼差不多這對長期維護來說帶來的體驗提升是肉眼可見的。1.2 koa的設計取舍小而精把選擇還給你koa的源碼壓縮后很小核心只干了三件事封裝req/res為統(tǒng)一的ctx對象、維護中間件數組、啟動HTTP服務。沒有路由沒有模板引擎沒有靜態(tài)文件處理。我第一次看到也愣了一下連路由都要自己裝會不會太簡陋恰恰是這個“簡陋”給了項目很強的自由度。Express把東西都內置好了看似方便但上了復雜業(yè)務你會發(fā)現內置的實現不一定符合口味想換一套卻要跟內置模塊糾纏。koa反過來默認給一個空殼你按項目需要自己拼接口項目裝koa/router和koa-bodyparser帶頁面的裝koa-static和koa-views要鑒權裝koa-session或自己寫JWT中間件。項目大的時候依賴清單本身就是一張架構圖。當然koa也繼承了Node.js生態(tài)的“野性”——選型你得自己負責裝錯了中間件得自己排查。這也意味著如果你想長期靠Node.js吃飯搞懂每一層是怎么拼起來的反而比用全家桶框架學到的底層原理更多。1.3 koa與Express核心差異速覽對比維度Expresskoa內核體積較大內置路由/靜態(tài)/視圖等極小核心只有中間件機制中間件模型線性流水線next進入下一層洋蔥模型支持中間件“進入—返回”的雙階段處理異步風格兼容callback、Promise、async原生async/await異常沿Promise鏈傳遞錯誤處理next(err)逐層傳遞容易漏app.on(error)全局兜底路由內置需安裝koa/router適用場景傳統(tǒng)MVC、老項目、快速原型輕量API服務、中后臺、微服務中的單個服務我在實際項目里兩種框架都維護過體感最強烈的不在語法細節(jié)而在“想做一個全局處理時的手感”。比如統(tǒng)一接口響應格式、統(tǒng)一記錄請求耗時koa的中間件因為洋蔥模型的存在能很容易地在請求進來時計時、等整條鏈跑完再寫日志而Express要做到類似效果得靠中間件排列順序加上res的finish事件去配合麻煩不少。2. 環(huán)境準備Node.js版本怎么選安裝時我踩過的坑2.1 版本選擇LTS優(yōu)先別碰奇數字先說結論日常開發(fā)和部署選Node.js偶數版本里的LTS也就是長期支持版。寫這篇文章時主流生產版本是20.x和22.x如果你是新項目又沒有特殊依賴直接裝20或22都不會錯。這里有一個不少剛接觸Node.js的人會犯的迷糊官網上寫著Current的奇數字版本比如23.x、24.x看起來是最新的但它的定位是“當前迭代版”每六個月就換一輪API還在變動第三方原生模塊的兼容性也可能跟不上拿來做生產環(huán)境是給自己找麻煩。我在把測試服務器升級到24.x的時候就遇到過某個舊版node-sass的原生模塊編譯失敗查了半天才發(fā)現是Node版本太新那個庫還沒跟上。后來我給自己定了個規(guī)矩開發(fā)機可以留一份最新的Current用來嘗鮮但項目里的package.json寫清engines字段指定只允許LTS版本運行避免同事機器上版本五花八門。2.2 Ubuntu、Windows、macOS三條安裝路徑的記錄不同平臺的安裝方式不一樣但核心建議只有一個用版本管理器不要直接去官網下載二進制包。官網下載解壓就能用的方式對一次性環(huán)境沒問題缺點是想切版本很痛苦只能手動改環(huán)境變量路徑。我用得最多的是nvmNode Version ManagerLinux和macOS裝好后兩條命令就能搞定curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash nvm install --ltsWindows上沒有原版nvm社區(qū)維護的nvm-windows同樣好用裝完后執(zhí)行nvm install 22再nvm use 22就切過去了。這里有個小細節(jié)安裝完nvm后如果執(zhí)行node -v找不到命令多半是終端沒有重新加載配置文件手動source ~/.bashrc或者干脆重開一個終端窗口就行。Ubuntu用戶經常做的第一反應是apt install nodejs我勸你多留個心眼。Ubuntu軟件源里的nodejs版本通常比較舊安裝后node -v打出來可能是個古早版本連async/await支持都有問題更別說跑koa。如果你不打算用nvm也可以從Node.js官網下載官方編譯好的LTS包解壓后把bin目錄加進PATH比如追加到/etc/profile.d下的腳本里。2.3 “版本號尚未發(fā)布”這類報錯的排查思路搜索熱詞里有一條報錯很典型error installing 24.21.0: node.js v24.21.0 is not yet released or is not available。這個我之前也遇到過明明官網上有這個版本號nvm卻提示“尚未發(fā)布”或者“不可用”很多人第一反應是網絡問題其實大概率是nvm的遠端版本列表緩存太舊本地還沒同步到最新發(fā)布信息。解決辦法也不復雜。如果版本確實已經發(fā)布先刷新nvm的版本列表再安裝nvm ls-remote nvm install 24.21.0ls-remote會重新拉取官方版本索引拉不下來的時候再看是不是nvm本身版本太老建議先升級nvm本體。還有另一種情況是版本號本身寫錯比如把24.21.0打成了24.210這種復制粘貼時特別容易出核對官方版本列表就好。如果你只是為了跑koa完全沒必要追最新版本號穩(wěn)定的LTS版本遠比“數字最大”重要。提示在開發(fā)機上裝好node后順手執(zhí)行npm -v確認npm也正常。有些手動安裝方式會把npm漏掉導致后續(xù)裝包全都失敗。3. 核心概念拆解ctx、中間件與洋蔥模型3.1 ctx一次請求里的“百寶袋”koa里每個請求都會生成一個獨立的ctx對象你可以把它理解成快遞員手里的那臺掃描終端里面既有包裹信息也有簽收界面。ctx上常見的屬性包括屬性作用典型用法ctx.request封裝的請求對象比原生req更好用ctx.request.query、ctx.request.bodyctx.response封裝的響應對象ctx.response.status、ctx.response.set()ctx.params路由路徑參數來自routerctx.params.idctx.query查詢字符串解析結果訪問 /a?x1 時得到 { x: 1 }ctx.request.body請求體內容一般由bodyparser填充讀取JSON請求體ctx.body快捷設置響應體賦對象會自動JSON序列化ctx.status快捷設置響應狀態(tài)碼ctx.status 201ctx.state中間件之間傳遞數據的小倉庫用戶鑒權后存user信息剛開始用koa的人容易在ctx.request.body和ctx.body之間犯迷糊。前者是從客戶端“拿進來的”后者是要“送出去的”代表了兩個完全不同的方向。中間件鏈上往前傳遞數據則用ctx.state我在后面講鑒權時還會提到。3.2 用一段代碼看懂洋蔥模型koa的中間件機制網上叫“洋蔥模型”名字很形象。你往app.use里塞一堆async函數請求從最外層中間件進入一路await next()往里走直到最后一個中間件處理完成再一層層返回。來直接看代碼const Koa require(koa); const app new Koa(); app.use(async (ctx, next) { console.log(1-請求進入); await next(); console.log(1-請求返回); }); app.use(async (ctx, next) { console.log(2-請求進入); ctx.body Hello Koa; await next(); console.log(2-請求返回); }); app.use(async (ctx) { console.log(3-處理業(yè)務); }); app.listen(3000);跑起來請求一次控制臺輸出順序是這樣的1-請求進入 2-請求進入 3-處理業(yè)務 2-請求返回 1-請求返回可以看到中間件代碼在await next()前后的部分會執(zhí)行兩次像剝洋蔥一樣進去又出來。這個特性最實用的場景就是計時和統(tǒng)一的響應封裝外層中間件在進入時記錄startTime在返回前計算總耗時或者統(tǒng)一給響應包一層結構。如果用Express那套線性流水線想做這種“進去又出來”的雙階段邏輯就得繞圈子。3.3 中間件設計的幾條實用原則第一個原則是中間件順序極度敏感。比如日志中間件必須排在路由之前否則路由已經處理完響應了日志根本來不及記錄。bodyparser也得在路由之前不然路由里讀不到ctx.request.body。第二個原則是“一個中間件只做一件事”。我見過有人把日志、鑒權、參數校驗、業(yè)務處理全塞進一個app.use里幾百行中間件看起來很“集中”實際上改一個功能容易碰壞另一個。把功能拆成一個一個幾十行的中間件調試時按順序注釋排查效率高很多。第三個原則是中間件內的代碼盡量保持“同步感”。使用async函數后await之間的邏輯是順序的但如果你在中間件里又開setTimeout、又搞eventEmitter異常就很難被koa統(tǒng)一捕獲容易變成unhandledRejection。一句話把異步邊界收緊在await表達式范圍內別讓邏輯跑到中間件調用棧外面去。4. 路由、參數與body解析從0寫一個真實接口4.1 路由選型與常見坑koa本身不帶路由目前最主流的選擇是koa/router它是koa-router的維護版功能上沒有本質區(qū)別包名換了但API基本兼容。裝好之后先實例化再掛載到app上順序和中間件一樣敏感const Router require(koa/router); const router new Router({ prefix: /api }); router.get(/health, (ctx) { ctx.body { status: ok }; }); app.use(router.routes()); app.use(router.allowedMethods());allowedMethods()這一行很關鍵它會讓接口對不支持的方法自動返回405或響應Allow頭部比如只定義了get的地址收到POST請求就會被正確處理而不是流落到404。沒寫這行也不影響跑但接口語義就不完整。另一個坑是路徑前綴重復。比如頁面路由和接口路由都想用/user注冊順序后又沒有統(tǒng)一規(guī)劃請求很可能被第一個匹配的路由吞掉。我給每個子路由實例化時都會顯式寫死prefix這樣一眼就能看出哪些路徑屬于哪個模塊。4.2 參數怎么拿params、query和body接口開發(fā)里最常見的三類參數分別是路徑參數、查詢參數和請求體。路徑參數靠路由規(guī)則里的冒號定義router.get(/user/:id, (ctx) { ctx.body { id: ctx.params.id }; });查詢參數直接掛在URL后面比如/user/list?page1size10用ctx.query拿它會自動解析成{ page: 1, size: 10 }。注意拿到的是字符串如果要做數值計算記得先用Number轉換或校驗工具處理一下。請求體要分情況看。純GET接口一般不需要body但POST/PUT/PATCH發(fā)來的JSON、表單數據必須先經過koa-bodyparser的解析才能在路由里讀取。裝好后在路由之前全局注冊const bodyParser require(koa-bodyparser); app.use(bodyParser());之后路由里就能這樣用router.post(/user, (ctx) { const { name, email } ctx.request.body; ctx.body { received: { name, email } }; });4.3 完整示例一套內存版用戶接口為了展示“路由參數body響應”的全鏈路我寫一個不依賴數據庫的用戶接口數據存在內存數組里重啟丟失但夠用來理解流程。完整代碼長這樣const Koa require(koa); const Router require(koa/router); const bodyParser require(koa-bodyparser); const app new Koa(); const router new Router({ prefix: /api/users }); const users []; let nextId 1; app.use(bodyParser()); router.get(/, (ctx) { ctx.body { list: users }; }); router.get(/:id, (ctx) { const id Number(ctx.params.id); const user users.find((u) u.id id); if (!user) ctx.throw(404, 用戶不存在); ctx.body { data: user }; }); router.post(/, (ctx) { const { name, email } ctx.request.body; if (!name || !email) ctx.throw(400, name和email不能為空); const user { id: nextId, name, email }; users.push(user); ctx.status 201; ctx.body { data: user }; }); router.put(/:id, (ctx) { const id Number(ctx.params.id); const user users.find((u) u.id id); if (!user) ctx.throw(404, 用戶不存在); const { name, email } ctx.request.body; if (name) user.name name; if (email) user.email email; ctx.body { data: user }; }); router.delete(/:id, (ctx) { const id Number(ctx.params.id); const index users.findIndex((u) u.id id); if (index -1) ctx.throw(404, 用戶不存在); users.splice(index, 1); ctx.status 204; }); app.use(router.routes()); app.use(router.allowedMethods()); app.listen(3000, () { console.log(server running at http://localhost:3000); });這套接口里用到了ctx.throw(400, xxx)這是koa內置的快速拋錯方式錯誤會被后續(xù)的統(tǒng)一錯誤處理接住。如果是小項目這個demo已經是一份能商用的骨架了。真實項目只需要把內存數組換成數據庫模型邏輯幾乎不用動。5. 統(tǒng)一錯誤處理與工程化結構5.1 全局錯誤處理中間件try/catch別散落一地新手寫koa最容易出現的一副畫面是每個接口里都包一層try/catch然后return一個錯誤響應。代碼一多錯誤格式五花八門前端對接的時候想罵人。正確做法是統(tǒng)一在中間件頂層攔截異常。先在路由之前注冊一個錯誤處理中間件app.use(async (ctx, next) { try { await next(); } catch (err) { ctx.status err.status || 500; ctx.body { code: err.status || 500, message: err.message || 服務器內部錯誤 }; ctx.app.emit(error, err, ctx); } });中間件里await next()之后的異常不管是從路由throw出來的還是數據庫查詢拋出的都會被這里攔住。有了這個兜底業(yè)務代碼里可以放心丟異常參數不對就ctx.throw(400, 參數錯誤)用戶找不到就ctx.throw(404, 資源不存在)除非有特殊的裁剪需求否則接口里基本不需要手寫try/catch。ctx.app.emit(error, err, ctx)這行用于把原始錯誤發(fā)到應用層的error事件監(jiān)聽里。建議在入口處掛一個監(jiān)聽把error記錄到日志文件或日志平臺避免生產環(huán)境只看得到“500”卻沒有堆棧線索app.on(error, (err, ctx) { console.error(server error:, err); });5.2 404與業(yè)務錯誤碼的約定koa默認對沒匹配到路由的請求返回404響應體是空的。對純接口項目我習慣在路由之后補一個兜底中間件讓連路由都沒匹配上的請求返回統(tǒng)一格式app.use((ctx) { ctx.status 404; ctx.body { code: 404, message: 接口不存在 }; });注意這段一定要放在router.routes()之后否則所有請求都會先被它攔截路由就失效了。另外業(yè)務上有時需要區(qū)分“HTTP狀態(tài)碼”和“業(yè)務錯誤碼”比如登錄過期可以返回200但code為401此時字段名和語義需要文檔約定清楚。我常用的約定是HTTP狀態(tài)碼表達傳輸層狀態(tài)body里的code表達業(yè)務結果前端先看code再做分支。5.3 值得參考的目錄結構項目無論大小我都不建議把所有路由寫在一個入口文件里。一個可維護性還不錯的目錄結構大概是這樣的src/ ├── app.js # koa實例、中間件裝配 ├── index.js # 入口啟動服務 ├── config/ │ └── index.js # 端口、環(huán)境變量集中配置 ├── middleware/ │ ├── errorHandler.js # 統(tǒng)一錯誤處理 │ ├── responseTime.js # 響應耗時統(tǒng)計 │ └── auth.js # 登錄鑒權 ├── routers/ │ ├── user.js │ └── order.js ├── controllers/ # 業(yè)務控制器處理req/res語義 │ ├── userController.js │ └── orderController.js ├── services/ # 業(yè)務邏輯層操作數據庫、調用外部API │ ├── userService.js │ └── orderService.js └── utils/ └── response.js # 統(tǒng)一響應包裝函數分層的主線是路由只負責路徑和參數的映射controller做參數校驗和響應處理service做真正的業(yè)務邏輯middleware處理橫切關注點。小項目可以砍掉controller層但service和middleware的隔離建議保留后面加單元測試、加需求時能省很多事。6. 常見問題與排查技巧實錄6.1 “ctx.body沒生效”一類問題你在路由里明明寫了ctx.body { code: 0 }但用Postman一請求返回卻是404空響應。遇到這種情況先檢查路由有沒有真的注冊到app上最常見的原因是app.use(router.routes())寫到了中間件列表的末端被某個前置的ctx.body xx搶先兜底了。再檢查路由的prefix和請求路徑是否拼錯比如prefix是/api/users請求打的是/api/user路徑匹配不上自然走進404。還有一個容易被忽略的點ctx.body賦值后如果又寫了ctx.status 204204按協議不允許響應體瀏覽器會自動丟棄body內容哪怕你代碼里賦值了也看不到數據。6.2 中間件順序引發(fā)的連鎖反應bodyparser順序不對是高頻問題。bodyparser要放在路由中間件之前因為路由里要讀ctx.request.body。如果順序反了請求先被路由處理路由里拿到空body然后你把空數據存進了數據庫回頭排查半天才發(fā)現是解析器還沒掛上。日志中間件也是一樣放路由后面的話路由都返回了日志代碼根本不會執(zhí)行到。我排查中間件順序時常用一個小技巧在每個app.use函數的開頭加一行臨時console.log(middleware A in)然后請求一次接口看控制臺輸出的順序和預期一不一致。定位完再刪掉日志比對著代碼猜快得多。6.3 async異常不輸出日志的坑koa能捕獲的是中間件Promise鏈上的異常但如果在中間件里用了不帶await的異步操作比如app.use((ctx, next) { setTimeout(() { throw new Error(boom); }, 100); return next(); });setTimeout里拋出的錯誤koa根本接不住也不會出現在app.on(error)里最終變成unhandledRejection在有些Node版本下進程還會直接崩掉。排查這種問題的方法是在進程級別掛上兜底監(jiān)聽至少讓你知道發(fā)生了什么process.on(unhandledRejection, (err) { console.error(unhandledRejection:, err); });但根因還得靠代碼規(guī)范中間件里的異步操作一律用await或把回調Promise化絕不讓異常脫離中間件的調用鏈。6.4 其他高頻問題速查表現象最常見原因處理建議端口被占用啟動報EADDRINUSE上一個進程沒退出lsof -i:3000找到PID并kill或改用其他端口請求對象返回的是字符串而不是JSON手動設置了Content-Type或ctx.body直接賦字符串給ctx.body賦對象即可koa會自動設置application/jsonPOST請求讀取不到ctx.request.body沒掛koa-bodyparser或掛載順序在路由之后在路由之前app.use(bodyParser())接口突然404路由未注冊、路由前綴拼錯、兜底中間件放錯位置用中間件日志定位是否有進入router.routes()外部POST請求跨域被攔沒配置CORS中間件使用koa/cors并設置允許的來源日志時間比本地時間差8小時服務器默認UTC時區(qū)在日志配置中顯式指定時區(qū)或統(tǒng)一轉換7. 上線部署與性能優(yōu)化要點7.1 PM2守護進程別讓進程自己死掉koa應用本質上就是一個Node進程上線時如果直接node src/index.js掛著一旦進程崩潰服務就完全不可用了。我平時用的是PM2做進程守護簡單配置如下npm install -g pm2 pm2 start src/index.js --name my-koa-app pm2 save pm2 startuppm2 startup會生成一條開機自啟命令讓服務器重啟后進程自動拉起。PM2還自帶日志和監(jiān)控面板pm2 logs看實時輸出pm2 monit看CPU和內存。多核機器上建議開cluster模式讓進程按CPU核心數復制起來充分利用多核性能pm2 start src/index.js -i max --name my-koa-app不過開了cluster模式后要注意session和內存數據不再共享如果代碼里有內存緩存或者WebSocket連接會繞出跨進程一致性的問題。所以我的建議是接口純無狀態(tài)才放心用cluster否則先單進程跑瓶頸到了再去加架構上的復雜度。7.2 環(huán)境變量與運行模式端口號、數據庫連接串、密鑰這類配置不適合寫死在代碼里用環(huán)境變量讀取是最基本的工程習慣。代碼里這樣寫const port process.env.PORT || 3000; const env process.env.NODE_ENV || development;PM2啟動時通過env字段或命令行傳入環(huán)境變量開發(fā)環(huán)境、測試環(huán)境、生產環(huán)境用不同的配置避免把本地配置帶到線上。還有個細節(jié)生產環(huán)境一定要設置NODE_ENVproduction很多庫的日志詳細度、內存用量都依賴這個值koa本身雖然不直接看它但它會影響你調用的其他中間件的表現。7.3 Nginx反向代理下要注意的細節(jié)實際部署很少讓Node直接暴露80端口對外訪問一般前端是Nginx做反代把接口請求轉發(fā)給Node進程。配置大概長這樣server { listen 80; server_name example.com; location /api/ { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }這時候如果代碼里需要獲取用戶真實IP直接用ctx.request.ip會拿到Nginx的內網地址需要在koa入口設置一句app.proxy true讓框架信任X-Forwarded-For頭再去讀ctx.request.ip才是真實用戶IP。出于安全考慮這一句只在確認只有Nginx能把請求打到應用時才開否則客戶端偽造請求頭會導致IP記錄失真。8. 最后關于koa的一些真實體驗8.1 什么時候該用koa什么時候別用做過幾個項目的橫向對比后我現在的選型標準比較固定面向接口開發(fā)、團隊熟悉異步編程、項目需要靈活定制中間件的koa是很好的選擇。如果你的項目本身是傳統(tǒng)的服務端渲染頁面要模板引擎、要靜態(tài)資源托管、要現成的MVC結構Express能讓你更快落地。如果你要的是一個全家桶框架自帶ORM、鑒權、定時任務、微服務協同那要去看NestJS這類重框架koa這類輕量內核需要你自行拼裝的部分會太多。koa還有一個隱藏優(yōu)勢是學習成本曲線。它核心概念就那么幾個源碼也短新手啃一遍中間件機制后對Node異步理解會加深不少這種底子對后面接觸NestJS、寫AWS Lambda函數等都是保值資產。8.2 我從實踐中總結的幾條經驗第一中間件一定要保持“薄”。我在代碼審查時看到過長到幾百行的app.use函數里面塞了十幾件事這種代碼看起來也能跑但以后任何人都不敢動它。一個中間件只做一件事做完了就把控制權交給下一個這是koa最優(yōu)雅的用法。第二路由層級和模塊邊界要在項目最開始就定好。prefix一旦在多個模塊里用起來后續(xù)想改路徑是牽一發(fā)動全身的事。我吃過一次虧前后端聯調時發(fā)現前端所有接口都寫的是/api/v1/...而后端路由是/api/...最后只能加一層路徑重定向兜底雖然解決了問題但顯得很丑。第三遇到奇怪問題先懷疑順序再懷疑緩存。koa的中間件順序和bodyparser掛載順序是新手翻車的第一大來源什么奇奇怪怪的“數據讀不到”“日志不打印”十有八九是順序問題。排掉順序之后再考慮是不是舊進程沒殺掉、端口被老服務占著、npm緩存了舊包這幾種排查路徑基本能覆蓋日常開發(fā)里近八成的幺蛾子。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
女人高潮大叫一级毛片| 国产极品精品美女视频| 久无码| 中英熟女操女| 久久9免费视频| 精品免费1| 日韩A优精品在线观看| 夜夜躁狠狠躁日日躁av| 蜜臀久久99精品久久久久久成人小说 | 日本精品一区三区| 91啪啪视频| 做爱A级亚欧| 国产精品操| 一区超碰一区| 色在线69堂| 久久69| 夜夜免费视频| 中文无线日韩一区| 18禁久极品美女久久哦哟呀!| 激情开心五月天| 99re国产中文字幕| 日本精品第一视频在'| 不卡中文字幕aⅴ在线| 亚洲校园激情| 丰满少妇精品一区二区| 97视频在线观看网站| 97爱欧美| 亚洲人在线成线成人| 激情五月综合网| 日本 欧美 国产一区| 2019久久久久久久久福利| 日本淫乱女一区二区三区视频| 九久久九九久视频| 久久99久久99精品天美传媒棢·纸:. | 国产精品一区二区三区,亚洲综合| 亚洲爽图| 丰满人妻无码一区二区三区| 久久无码电影| 欧美系列在线一区二区| 最新日产中文在线麻豆| 人妻日日干| 91社操逼| 婷婷天堂站| 成人乱码一区二区三少妇| 九九综合久久中文字幕| 亚洲AV无码AV吞精久久久久| 欧美久久伊人| 精品国产91久久久久久一区黄无| 国产中午字一暮区| 亚洲黄色AV电影| 天天摸,夜夜摸| 91GD.COM| 国产蜜臀精品一区免费尤物| 色女99一级片在线观看| 9精品久久| 日韩 女同 综合| 丝袜美女诱惑 91 视频| 精品免费成人久久| 中文字幕丰满子伦无码专区在线视频最新 | 四虎免费在线播放| 久久久久久久| 国产丝袜欧美在线视频| 国产操逼逼网| 曰韩欧美国产传媒麻豆第一区| 久9久| 好舒服视频| 欧美,日韩,中文,另类| 密臀国产在线| 最新日本中文字幕| 久久草在线综合视频| 九九热精品| 天天干天天日天天射黄色大片| 天天天乱色综合全| 精品大全99999| 这里只有精品97| 精品综合久久久久久五月天| www.av在线观看| 91精品综合久久久久久五月丁香| 天操天操夜操夜月操月年年操| 欧洲小说色图视频另类| 天天干少妇| 天天α片| 男人的天堂2018| 亚洲精品三区在线观看| 欧美日韩国产中文超碰| 人伦四五区| A 天堂| 韩国一级婬片A片AAAAA| 日日黄色三级网站| 国产精品九九九| 国产成人午夜视频网址| 白嫩嫩一区| 国产人妻精品一区二区三区秋霞| 久久久久久99AV无码免费网站| 日韩黄色一区二区三区| 欧美久久婷婷| 色欲av一区二区三区蜜芽| 丁香六月激情| 一区二区三区高清| 国产高清成人传媒影视| 亚洲色悠悠久久88| 国产69精品久久久久99尤物| 亚洲三级网址久久最新| 人妻一区二区三区四区视频| 日韩另类色图| 黑人性欧美| 日本免费专区| 久久久久9999精品九九九| 男啪女色黄无遮挡免费观看| 男人的天堂亚洲| 亚洲图片在线| 亚洲小电影免费涩涩成人在线高清 | 人妻插插人妻人| 大鸡巴久久| wwwss在线观看| 国产一区二区三区久久精品太古里| 一区二区三区不卡视频| 91xingse| 中文字幕,人妻,日韩| 日韩美脚一区二区网站| 青娱乐淫乱1314| 中文字幕第页| JIZZJIZZ亚洲女人被躁| 超碰78| 十八禁啪啦拍视频无遮挡| 综合视频91| 日韩操逼HD| 欧美少妇高潮久久91| 国产精品999aaa| 国内91熟女人妻丝袜天天精品视频在线| 日韩综合97P| 无码高清专| 久久日本熟女精品一区| 精品亚洲国产成人av网站| oumeizonghese,www| 日韩欧美成人性爱在线| 神马九九九| 高清无码国产亚洲| 欧美日韩*字幕一区| 欧美在线l亚洲| 国内偷自视频区视频综合| 亚洲美女30b| 欧美激情性久久久久久| 麻豆 亚洲 97| 精品国产久热在线观看| 91操熟女| 久久久久9999精品九九九| 久久久久国产精品片区无码直播| 久久成人东京热人妻| 美女自卫慰黄网站免费| 久操精品| 天天情欲宗合网| 狠狠色色| 精品中文字幕一区二区| 97久操| 蜜臀久久99精品久久久久久久久| 欧美真人抽搐一进一出gif| yiqicaoav| 黄呦呦在线| 人人摸人人摸人人干| 国产嫩草精品A88AV| 九九在线视频| 一类av片在线看| 97超碰中文字幕| 激情六月天| a片自拍直播视频| 尤物视频偷拍免费| 欧美日日夜夜| 麻豆 欧美 日韩| 亚洲高清无码在线桃色| 国产精品一区二区a| 精品一区99999| 丝袜狠狠草尤物人妻av91| 国产三级中文有码在线视频| 人人 操人人 操人人| 清纯唯美亚洲另类| 99后入| 亚洲欧美爆| 婷婷爱五月| 乱伦av国产| 免费观看成人www精品视频| 久久 久久国内精品亚洲| 青青网三级视频| 啪一啪免费视频| 日B操| 日韩精品人妻中文字幕不卡乱码| 欧美久久婷婷| 人妻一区二区三区四区视频| 欧美天天综合在线| 久久久9 9 9精品| 无码男人天堂| 骚女高跟AV在线| 婷婷成人久久久精品| 久久久com| 亚洲AV秘 精品久久老牛影视| 夜夜精品视频| 亚洲日韩精品久久久久一区壹牛| 综合夜夜| 91人妻少妇| 在线看污网站| 日本天天干天天操一区| 好吊色综合| 欧美97av| 欧美狠狠干| 亚洲激情片| 舔足天天操天天射| 亚洲一区二区三区婷婷| 精品日日人妻| 三级激情网站| av网页一区二区三区| 日韩精品资源专区二区| 国产亚洲精品A在线观看下载| 亚洲无码日韩电影| 丰满人妻一区二区三区免费| 欧美人妻制服| 久草尤物| 少妇一区二区三区高速| 国产精品自拍xxxx| 亚洲精品日韩国产欧美| 性高潮久久久| 变态综合色| 好爽免费视频| 自拍偷拍第26| 一本一道vs波多野结衣| 屌逼麻豆| 久久久网一区| 老熟乱一区二区三区四区| 久久精品无码专区| 一级做a爰片性色毛片久久| 久久久久久久伊人精品| 日本亚洲熟女视频| 色综合中文字幕不卡| 亚洲AV不卡在线观看尤物| 麻豆激情综合| 一本大道青青| 日本熟女不卡视频| 探花一区在线| 97爱爱爱综合| 97超碰精品成| 嗯嗯不要视频| 国产日韩区| 亚洲精品三| 一区二区三区 丝袜 高跟 美腿| 99re不伦| 玖色av| 91成人18| 91人妻尻屄视频| 日韩AV片| 国产美女高潮视频| 97在线精品观看视频| 丁香色色网| 丝袜综合| 久久久一区二区三区四区五区| 青娱乐国产剧情av一区| 久久精视频美日韩在线视频| 久久综合18p| 是还免费视频1727我| 日韩大香蕉AV影片| 国产精品人妻熟女aⅴ| 99精品在线| 欧 美 自 拍 偷 拍| 色九九综合| 亚洲大色堂| 欧美性夜| 无套内射性感少妇视频| 伊人国产视频| 欧美v日韩v亚洲v最新在线| 大香蕉一线视频| 麻豆AV一区二区| 欧美肥臀在线| 日本影视久久免费| 人妻少妇精品久久久久久久| 成人性爱高清视频免费看| 久久国产99精品72福利 | 美女爽爽爽刺痛洞洞| 91久久久亚洲| 色色99| 综合网亚洲1| 亚洲中文字幕久久人妻| 第二页中文字幕| 国产白丝网站| 国产麻豆一级精品视频| 91久久18禁| 亚洲国产97| 日韩一级片| 久久成人午夜狠狠| 国产女人和拘做爰视频| 中文字幕av久久爽Av| 蜜臀久久99精品久久久久久酒店| 我要看免费韩日黄片| 亚洲激情色片 | 丁香色五月 97干| 内射黑丝袜| 强奸乱伦AV网站| 国产天天骚| 中文字幕 国产区| 天堂资源站| 99这里只有精品国产| 九九九九九九亚洲| 91香蕉国产尤物视频| 五月天啪啪| sewuyueav| 99在线精品观看99| 玖玖久久久| 婷婷在线播放| 日韩 国产 欧美自拍| 91美乳| 国产大陆天天艹| 吉川爱美亚洲二区在线| 日韩丝袜二区| 78m成人视线| 免费一级视频特黄色大片| 人妻另类| 久久久久久久久九九久孕交| 亚洲精品无码久久AV| 夜夜爽爽夜夜精品视频| 黄网色一区二区三区四区精品| 狠狠干2020| 欧美99热| 成人a v在线播放免费| 中文字幕乱碼在线| 日韩精品视频在线观看一卡二卡| 亚洲高潮影院| 中文字幕加勒比海高清无码免费视频| 中文字幕国产| 精品人妻一区二区蜜桃视频 | 日本不卡免费二区| 亚洲日韩一区电影| 国产三级资源在线观看| 欧美最大综合网| 男人的天堂三级| 国产黄a三级三级三级av在线看| 久久AV无码AV| 日韩欧美~中文字| 蜜臀精品1区2区| 乱伦3P视频| 久久啊啊| 97jingpin| 啊啊啊用力在线观看| 欧美大香蕉久| 麻豆成人影音在线| 98福利在线视频| 欧美色五月| 久久男人精品| 97精品国产| 国产AV线| 亚洲蜜臀懂色| 亚洲熟妇无码一区二区三区| 情色日播放AV| 国产a级午夜毛片| 丝袜人妻av一区二区| 啊啊啊啊好疼视频| 伊人久久国产免费观看视频| 97超碰美国| 无码免费精品高清| 精品国产无码中文| 国产在线观看一区二区三区| 农村少妇久久久久久久| 欧美一品道| 亚射在线| 夜夜爽77777| 国产超碰人人操| 人人做天天爱| 欧美A片中文字幕| 精品久| 国产精品伦理| 夜夜春夜夜操| 99精品丰满人妻无码| 天天综合网在线| 人妻中文在线| 婷婷五月天色色| 婷婷午夜成人色中色| 高树玛利亚无码流出| 色爱综合网| 综合久久六月久久婷婷| 亚洲精品人妻在线| 欧美日韩国产另类综合| 日本成人A片免费看| 男人天堂黄片| 岛国大片国产| 秋霞久久亚洲精品成人| 曰韩精品视频一区二区| 日本操逼二区| 黄片aaaaa一区| 亚洲91在线播放影院| 亚洲 自拍偷拍 欧美| 久久久久亚洲AV无码专区少妇| 免费福利视频中文字幕| 国模不卡| 91干熟女| 欧美亚洲日韩人妻在线观看| 久久婷婷五月综合| 成人 日韩欧美一区| 色婷婷激情| 日韩人妻资源在线看| 淫淫总合网| 人人综合| 国产精品大屁股999| 人妻天天爽夜夜爽2| 综合大香蕉美。| 亚洲,欧美,综合网| 伊人一级免费黄片| 免费A V在线播放| 日本韩欧美在线播放a| 99精品热| 2019AV天堂| 欧美亚州色的图| 美女91网| 丝袜人妻av一区二区| 少妇人妻好深太紧了vr91| 天天色天天干天天爱| 综合操逼| 午夜操一操| 日韩强奸av| 自拍视频一区在线观看| 久久小视频| 精品亚州18| 夜夜黄| 极品欧美一区二区三区| 97欧美性爱| 丁香激情五月| 九九热在线精品视频| 欧美亚洲清纯| а√天堂资源官网在线资源| 丰满高潮18xxxx| 久热69九色熟妇97| 91九九九吃| 日韩精品-原创伙伴| 日韩激情毛片一级久久久| 性爱av在线免费观看| 极品丝袜无码| 欧美激情在线观看视频| 国产午夜激片Av毛片不卡| 日韩三级久久久| 日日日色色色色色| 成人性爱免费播放| 婷婷午夜| 亚洲国产丝袜在线观看| 精品久久久久久中文字幕视频免费| 亚洲免费成人在线高清无码视频| 欧美亚洲综合色| 插入粉嫩少妇视频| 欧美日韩啪啪电影| 色激情五月天| 91久热| 久久成人午夜精品影院| 一二三啪啪专区| 蜜臀中文无码午夜| wwwcaobibi| 欧美综合加勒比在线| 欧美色干| www.色五月| 日日日日做夜夜夜夜做无码97| 久久综合久久综合人久久夜精品| 久热这里| 免费一级欧美片片线观看| 久久久久久中文版| 欧洲黄色网| 玖玖综合.com| 国产视频第二页| 五月天久久久| 夜夜夜夜久久久久| 一本道综合色图| 国产精品另类一区大香蕉| 人人操,操人人| 久久久111| 中文字幕AV乱伦| 超碰性爱97| 偷拍偷窥与盗摄视频专区| 殴美,日韩国产伦精品| 欧色网址| 夜夜爽77777| 91n欧美| 中文字幕在线24| 91人人| 口爆综合网| 欧亚日韩中文在线| 2001天天操| 中文字幕国产在线天堂| 熟妇视频一区二区三区在线观看| 丁香色狠狠色综合久久小说| 一二三啪啪专区| 欧美日韩国产成人高清| 久久久久久久久久久久久久久乱码 | 日本一区二区亚洲综合| 精品久久久久黄少妇| 亚洲日韩视频二区| 综合性视频99| 蜜臀少妇一区二区| 国产强奸无码乱伦| 成人天天看站长推荐| 欧美经典一区二区三区| 色牛牛AV| 麻豆天美91| 大香蕉欧美日韩| 夜色AV无码手机在线影院| 色天天野狼综合社区| 嗯啊不要啊在线| 精品久久久av无码免费| 加勒比五月天| 爱爱动态120秒| 国产黄色影片在线观看| 风韵犹存大大大大香蕉 | 亚洲第一页色网| 91久精品| 欧美成人黄网色网站| 91日韩国产欧美亚洲另类精盘州至城都| 欧美熟爽综合| 国产一区二区欧美日本| 91狠狠| 99re6在线视频精品免费完整版安卓版| 日韩啪啪视频| 午夜视频好爽啊| 久久香蕉国产线看观看亚洲女人| 4141514逼喷水三级片| 亚洲av淫乱| 一中国女人毛片水真多| 人妻精品一区一区三区蜜桃91| 久久麻豆一区二区| 一级久久性爱视频| 国产精品亚洲色婷婷久久久| 成人一二三区| 十八禁电影伊人网| 操操操操操操| 婷婷五月天补不补| 黄片在线免费在线观看| 中文字幕日韩专区精品系列| 96久久久久久久| 成人天天爽| 欧美日韩资源在线| 五月天激情婷婷| 欧美页片| 九九热免费国产视频婷婷伊人五月| 免费观看的黄色的网站| 亚洲无码成人精品| 五月亭亭六月丁香| 欧美高清16| 午夜精品久久久99热蜜桃的功能特点| 老熟女熟妇| 国产女上位好爽在线| 偷看洗澡一二三区美女| 欧美另类精品xxxx| 亚洲激情在线观看一区| 欧美激情综合| 欧美色图20p| 蜜区区视频79| yazhououmeizongya| 色五月激情AV在线| 国产亚洲日本| 欧州激情视频在线一区二区| 内射中出日韩在线观看视频| 久久黄色网址| 国产欧美第五页| 一区二区激情国产熟女| 五月婷婷丁香六月| 大胆91| 日韩有码一区三区| 欧美日韩夜夜| 夜夜狼人妻| 少妇六月天| 爱干爱射网啊啊啊| 久久av网| 久久、1234| 中国熟女网站| 色哟哟av网址| 伊人性在线视频| 亚洲第一页色网| 东京热毛片177b2viP| 91精品人妻一区二区三区蜜桃| 夜夜高潮夜夜爽夜夜爱爱一区 | 色色激情五月天| 99热最新| 东北黄色电影| 一级黄碟在线观看| 天天内射| 狠久久| 99热在线观看| 91深夜夜| 激情综合五月| 厕所偷拍在线| 美女黄码视频午夜| 久草看看看| 青娱乐休闲视频在线观看| 欧美Aⅴ| 国产女人操逼视频| 91超级碰| 国产白嫩精品久久| 国产人人干| 后入国产| 久操凹凸视频| 熟女性视频| 综合一区二区影视| 91老熟女视频| 亚洲最大的综合性av| 丁香五月婷婷基地| 日本A级视频| 日韩欧美蜜桃精品久久中文字幕久久| 蜜臀99精品国产高清在线观看| 在线视频亚洲无码| 国产尤物AV尤物在线观看不卡| 99久久综合| 伊人操操| 99re免费| 国模精品娜娜一二三区| 麻豆AV短剧| 久九九九九九九九热| 91啦人妻| 婷婷五月天成人| 人妻少妇三级| 国产一区在线播放| 精品v日韩欧美国产| 亚州宗合另类| 97在线欧| 欧美日韩大黄片| 欧美亚州手机在线| 五月天人妻综合| 国产无码高清操逼视频| 嗯嗯啊操我| 中文字幕av片| 思思热国产在线视频| 熟女人妻av在线资源,黄色的资源| 超碰在线97国产| 中文字幕97| 97婷婷色| 51一区二区三区| 人人人人插| 亚洲色性情三级| 亚洲天堂一区| A V少妇特黄三级| 精品二区久久| 亚洲女毛多水多21P| 91中文精品日韩欧美在线| 日韩有码专区| 五月天婷婷久久| 欧美亚洲韩国视频十五区 | 夜夜 中文视频rt| 在线αⅴ| 国产极品999| 五月亭亭六月丁香| 搡老女人老妇女老妇老熟女怎么读| 桑老女人九区| 国产日韩欧美三级片| 青青草中日韩在线| 亚洲一卡2卡3卡4卡乱码网站 | 人人模人人看| 黑丝少妇麻豆| a亚洲欧美色欲| 中文字幕视频一区视频二区| 成人羞羞视频国产| 国产精品制服丝袜中文字幕日韩一区二区三区 | 久久日韩肥臀| 99热久| 人妻娇喘 激情视频| 偷窥自拍亚洲天堂网爆| 欧美色九九| 五月婷婷六月激情| 超碰97护士| 久久最新免费视频23| 欧美成人性活片| 一区麻豆 高清中文字幕| 亚洲性爱成人| 97操在线| 色综合久久888| 91欧美综合| 精品国产一区二区久久| 天天夜躁日日躁狠狠2002| 欧美白嫩女HD| 综合自拍| 女人综合网| 美女大乳久久久久久久女人18| 久久国产性爱| 蜜臀久久99精品久久久久电影| Julia在线播放亚洲久久| 色99999| 乱久久久| 丝袜美腿诱惑亚洲欧美视频在线观看 | 国产高清26uuu| 91超碰在线观看| 人人爽天天爽| 黄色AAAAA欧美| 午夜啊啊| 精品亚州18| 噜噜噜狠狠色综合| 思思热在线视频在线| 97欧美色综合| 99国产精品人妻人伦| 一区二区三区成人高清视频| 奶水 人妻 哺乳 在线| 97色爱| 操逼网站视频漫画国产| 亚洲国产另类在线中文| 精品久久9| 狠狠中文字幕| 欧美一级黄色18片免费看| 伊人影院日本| 91欧洲入口| 草久久久| 人人色97| 性爱精品一区| 国产一区免费午夜视频| 99在线精品视频| 试看60秒| 青青草在线视频欧美| 狠狠五月天| 日操粉逼逼| 91被操| 超碰人妻97| 欧美黑人91| 久草色悠悠在线视频| 婷婷激情五月| 俺去俺来也在线www| 99久久精品无码一区二区毛片免费 | v91av| 超碰综合97在线| 精品免费国产二区三区| 男人天堂.AB| 五月婷在线| AAA久久| 亚洲一区二区三区AV无码| 老外又粗又长一晚做五次| 亚洲在线91| 加勒比99999| 91痴汉| 天天搞欧美| 97超色| 亚洲色图自拍| 情色五月天网| 久久超碰98| 试看福利| 中文字幕AV片| 欧美在线色| 久草精品视频| 97se综合| 欧美一区二区三区成人性生活| 久久久久ab| 人妻少妇三级| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV | 青青草国产一区二区三区| 久久动漫精品视频这里只有精品| 超碰1024久久| 欧美操逼视频二区| 久久AV无码1区2区3区| 自拍盗摄一区| 国产久久日韩网站导航| 二级久久网| 操逼999| 欧洲自拍色图gif在线| 色天堂在线观看| 国产99999久久精品| 伊人色综合欧美| 久久亚州大香蕉| 情色图区| 久久精品久| 亚洲黄色视频在线观看视频| 亚洲成aⅴ人片不卡无码| 欧美天天干| 岛园激情| 人妻激情另类| 人人摸人人干| 99re在线精品78| 98超碰欧美| 欧美亚洲天堂| 国产精品一区av在线| AV中亚| 天堂精品| 久久99黄色卞西瓜| 丝袜喷水在线| 男人的天堂在线| 精品无码产区一区二| 久久久内射良家| 韩日欧亚a级| 日韩欧无码一区二区三区免费不卡| 日本精品一级二级三级| 国产91乱伦| 99在线观看| 日本三级小说中文字幕| B049AV在线播放| 亚洲人妻爽爽爽| 国产精品国产亚洲区艳妇糸列| 26uuu性| 天天干天天做| 九九九久久久久| 亚洲色欧| 婷婷av在线中文字幕| 家庭乱伦网站国产| 亚洲人精品久久久喷水| 物业黑人 AV一区| 青青草久草| 91人妻素女| 九九九九九九九九九九九免费国产| 好看的久久不射无码影视影院| 啊啊啊水好多| 一级@啪啪视频| 91国产精品在线看| 亚精品无码毛片一区二区三区| 青青草在线视频播放器| 天天懆天天日| 国产乱码久久| 黑人干亚洲| 精品无码一区二区三区| 91精品黄在线观看| 久久国产精品熟女人妻| 欧美亚洲图片| 国产伦乱91| 亚州中文字幕超碰97| 国产色产精品在线观看| 亚洲经典啪啪| 丝袜色综合| 无码免费在线观看黄色片| 99re视频在线观看这里只有精品| 色天堂在线观看| 亚洲日韩视频二区| 偷拍网站久久男女男| 色97欧美| 国产激情av女片自拍| 中文在线久久字幕| 性色AV网站| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 欧美色图小说综合| 无码 黑人一区二区三区| 六六久久日韩不卡| 97在线视频免费看| 日本一级性爱| 少妇特黄一区二区三区| 一级黄色性爱A级片| 伊人久久大香线综合无码| 男女无套 免费网站| 亚洲午夜免费狠狠干| 97久久超碰日韩精品| 高清在线偷拍自拍视频| nuu12国产麻豆精品| 福利视频一区二区微拍| 锕锕好爽 死我在线观看| 国产成人一级av88| 久久伦理视频久久大香蕉视频| 97超碰磁| 久久久久久久久久久久黄色| 国产丝袜欧美在线视频| 艳尻美人妻| 亚洲无码免费看| 超碰久在线天天做| 亚洲少妇综合在线播放| 精品国产乱码久久久久久日本公司| 亚洲乱伦图片视频| 国产九九九九九九| 五月婷婷久久综合| 99国产女人| 青青草原狼av| 两女互慰AV高潮喷水在线观看| 骚逼一区二区| 日韩丝袜二区| 大粗鳼巴久久久久| 国产日本熟女顶级一区二区三区视频| 精品视频一区二区| 人妻社区男人天堂| 成人免费福利在线观看| 精品国产乱码久久久影院| 伊人AAA| 国产主播福利| 欧洲精品一二三在线| 欧美v亚洲v日韩v最新在线二区 | www.婷婷五月天| 欧美日韩岛国大片在线观看| 欧美性性性| 色婷婷综合久久中文字幕雪峰| 95自拍视频在线观看| 热热色综合网| 亚洲人成色9999精品久久| 国产亚洲欧美每日在线| 亚洲极品| 色妺妺在线视频| 国产一在线观看| 91天堂丝袜美腿| 青青青国产| 丰满高潮18xxxx| 97超碰人妻| 欧美国产操逼| 欧美色三级片91| av无码av无码专区| 啊啊啊想要| 欧美天堂第二区| 最新欧美色网| av在线免费一区二区| 亚洲日韩美女丝袜美腿人妻视频| 亚洲综合图色在线| 日韩精品99999| 93人人操人人| 欧美超碰97| 天操天操夜操夜月操月年年操操| 亚洲精品97在线| 91狼人| 91精品久久久久五月天精品| 上床啊啊啊| 曰韩香蕉97| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 一级人妻性爱视频| 亚洲中文字幕一区二区| 青青欧洲黑| 97亚洲一区| 久热91| 欧美人妻精品一区二区| 无码久久亚洲高清,| 亚洲欧美碰碰| 欧美亚洲综合999| 国产欧美日韩臀| 久久国产精品一级二级三级| 不卡啪啪视频| 2019午夜福利视频| 免费的av网| 天天做天天爱天天爽| 人妻精品一区二区在线| 中文字幕一区二区日韩网| 激情小说在线视频| 啊啊啊啊好疼| 亚洲中文字幕久久无码精品| A一级色女| 天天插夜夜爽| 99国产精品免费| 色哟哟-国产专区| 偷拍伦理视频| 99在线免费视频| 亚欧性爱在线无码| 激情久久久| 郑州宾馆老熟女露脸啪啪| 中文字幕国产| 搞中出久久| 国产一进一出视频网站| 亚洲欧洲日本精品中文a∨| 久久精品国产亚洲AV先锋| 亚洲成人贴图| 免费试看60秒| 欧洲久久一二线| 淫荡网址| 69视频入口| 欧美性生活男人的天堂| 无码久久亚洲高清,| 91国产操逼视频| 激情小说日韩无码| 久久久国产av美女私房| Sekablack无码一区| 国产精品嫩草影院午夜两性| 激情小说日韩无码| 激情五月天插| 欧美人妻久久精品二区三区 | 内射黑丝袜| 综合网亚洲1| 亚洲丝袜在线观看| 亚洲丝袜诱惑| 视频一区二区免费在线| 91看黄片| 日韩 欧美 视频 在线 一区| 日本熟妇人妻中出视频| 五月天婷婷久久| 国产亚洲一黄| 亚洲精品欧美专业| 国内97干免费看| 熟妇一区,二区,三区。| 麻豆亚洲AV成人无码久久精品| 另类图片天天影视| 中文人妻av高清一区| 操逼操逼逼操操逼91| 亚洲乱熟女一区二区三区大香蕉| 天天操天天插| 熟女自慰久久久| 亚洲s色图| 美女网站91| 岛国免费视频在线| 色噜噜精品一区二区三| 久久久五月天| 欧美性暴力猛交XXXX | 综合五月婷婷亚洲一区| 亚洲色诱惑| 欧美 亚洲 大香| 亚洲不卡一| 欧州一区二区三区四区| 1禁看欧美黄片免费看| 超碰人人妻| 激情四射五月天| 天天92av| 伊人五月天激情| 91狠婷| 941超碰| 国产精品懂色tv影视免费观看| 日韩探花精品在线视频| 欧美淫穴| 好爽要喷了| 伊人网青青| 99综合| 少妇精品久久久| 精品一级毛片在线观看| 国产成人精品日本视频| 国产夫妻一区二区| 欧美激情 亚洲色图| 国产大陆天天艹| 亚洲不卡AV在线| 色色青青久久| 国产精品探花色| 91狠| av天堂加勒比| av在线一区二区三区| 中文字幕在线观看第二页| 欧美图片校园春色| 精品欧美А∨无码黑人大荫蒂| 久久婷婷五月天| 中文字幕第95页| 中文字幕乱码人妻二区三区| 色综合98| 国产熟女无套内射| 亚洲日韩国产欧美综合v| 91成人国产综合久久精品蜜月| 97欧美日韩| 激情色播| 亚洲精品熟妇1区2区3区。| 可以在线观看的黄色网址| 国产无遮挡| 97干97色| 大香蕉免费中文| 亚洲欧洲综合| 久久丁香五月天| 狠狠躁久久躁| 欧美日韩岛国大片在线观看| 欧美成人一区二区| 日韩免费在线视频观看| 麻豆AV96熟妇人妻| 91P0RNY大屁股人妻| 99国内精品| 啪啪综合网| 超碰久久中文| 欧美爱爱97| 蜜臀久久99精品久久久老,,| 久久αⅴ| 亚洲日本成人动漫| 国产97亚洲| 丁香五月成人| 热99re69精品8在线播放| 激情综合五| 成人性交午夜免费片| 色色婷婷丁香| 男同专区一区二区三区在线| 99超级碰免费视频| 亚洲风情在线观看| 懂色AV一区二区三区| 九九草| 偷拍网站久久男女男| 国产高清自拍视频| 欧美久久毛片基地| 国产v片在线免费观看| 欧美日韩少妇色情| 亚洲 自拍偷拍 欧美| 精品妇操一区二区三区| 免费a在线播放v| 亚洲黄色电影| 99热这里只有精| 日本精品中文字幕视频| 91性感网站| 国产无套粉嫩白浆在| 992视频一区| 久久女人视频| 为用户提供免费看黄网址在线观看| 久操在97| 337p大胆噜噜噜噜噜91Av| 99热这里只有精品18| 日本精品人妻少妇一区二区| 一级成人性爱| 夜夜嗨免费视频| 色噜噜综合在线| 国内精品嫩模A∨私拍小视频| 国产成人主播| 精品一区二区成人动漫| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 免费的很黄很污的全部视频| 夜夜嗨TV| 色性荡荡荡荡视频| 制度丝袜99| 精品人妻一区二区三区不卡断 | 欧美日韩午夜精品一区二区三区 | 亚洲国产高清福利视频| 91色婷婷综合久久中文字幕二区| 久久这里精品国产99丫e6| 欧美成人A天堂片在线观看| 丝袜美腿91| 天天天肏屄欧美| 黑人黄片在线免费观看| 欧美99999| 9ⅰ久久久天天| 97蜜桃综合| 国产精品久久久久久 百度| 欧美性第一页| 国产又长又大又粗的视频| 欧亚洲精品有视频| 无码精品一区二区三区潘金莲| 97久久国产精品女不卡| 后入式在线免费观看60秒| 久久久久人妻| 麻花传媒免费网站在线观看| 婷婷爽人人婷婷爽视频| 91丝袜美腿片| 淫色网综合| 中文字幕成人| 26uuu性物| 亚洲无码电影久久久| 色婷婷日韩精品一区二区三区| 精品久久久久黄少妇| 激情五月天丁香| 日本三级网页| 欧美亚洲自拍另类人妻| BBBBB97COM| 少妇久久久免费| 久婷婷一区| 大香蕉伊人亚洲| 五月丁香六月婷综合成人综合| 在线欧美69V免费观看视频| 97亚洲精品| 99久久久| 夜夜爽夜夜摸夜夜操免费视频| 国产又大又粗又长视频在线| 蜜臀国产AV中文字幕| 日韩乱插| 亚洲中文日韩欧美大香蕉视频| 天天综合91| 亚洲色交| 色路综合| 亚洲做性| 丝袜视频网国产90| 国产1727欧美| 亚洲天堂日本| 白丝少妇一区二区| 欧美色图天堂网m| 9999伦理视频| 区日韩亚洲乱码av电影| 五月天婷婷欧美三区| 综合色播| 亚洲综合在线视频| 黄网在线播放| 伊人五月天| www超碰| 激情五月丁香五月| 精品国产一级久久| 亚洲综合精品国产一区| 约操熟妇| 国产精品爽爽va在线观看98| h无码动漫在线观看| 国产精品69人妻无码久久久| 黄色片一区二区三区四区五区| 97色伦97色伦国产欧美| 人人干人人操人人爱| 国产精品无码成人精品| 一个人免费视频观看在线WWW| 中文字幕丰满人妻日本| 午夜小电影在线插入淫高潮| 一区在线精品中文字幕| 网站A V在线| 国产亚洲性生活视频播放| 蜜乳AV.COM| 乱论91| 亚洲成人久久美女| 思思热在线观看| 偷拍欧美激情| 亚洲欧美另类少妇精品| 都市激情人妻一区二区青青操视频 |