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

首頁 > 網站 > WEB開發 > 正文

express框架layer.js源碼解析

2024-04-27 15:09:10
字體:
來源:轉載
供稿:網友

layer.js是exPRess框架的路由機制的底層數據結構。下面為主要源碼,已經刪除一些不太重要的代碼。

function Layer(path, options, fn) { if (!(this instanceof Layer)) { return new Layer(path, options, fn); } debug('new %s', path); var opts = options || {}; this.handle = fn; this.name = fn.name || '<anonymous>'; this.params = undefined; this.path = undefined; this.regexp = pathRegexp(path, this.keys = [], opts); if (path === '/' && opts.end === false) {//use的時候end為false,route是true,也就是說use增加的函數,在所有的請求都和會被執行 this.regexp.fast_slash = true; }}Layer.prototype.handle_error = function handle_error(error, req, res, next) { var fn = this.handle; if (fn.length !== 4) { // not a standard error handler return next(error);//跳過所有不是4個參數的函數,直接執行有四個參數的函數 } try { fn(error, req, res, next); } catch (err) { next(err); }};Layer.prototype.handle_request = function handle(req, res, next) { var fn = this.handle;//handle可能是用戶傳進來的函數或者是route的dispatch if (fn.length > 3) { // not a standard request handler return next();//不標準的函數,直接跳過,把執行權交給棧里的下一個函數 } try { fn(req, res, next); } catch (err) {//出錯的話把執行權交給棧里的下一個函數,并且把錯誤的對象傳過去 next(err); }};

核心的方法為上面的三個,其中還有一個match方法是用于判斷路徑是否匹配和提取url里的參數的。 1.首先我們看一下構造函數Layer,該函數返回一個對象,并在其中存儲路由路徑和對于的回調函數,該數據結構在express做路由選擇時使用。 2。前綴為handle的兩個函數根據前面的layer層的執行結果來判斷執行哪個函數,并且根據node的約定,進行相關的參數個數檢測,最后執行相關的fn回調,正常情況下是在fn函數的函數體代碼中執行next來調到下一層,如果在fn回調執行的過程中出現錯誤,則執行catch中的代碼next(err),從而執行下一個layer,并且把err參數傳到下一層。 路由架構圖


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲free性xxxx护士hd| 国产+成+人+亚洲欧洲| 亚洲国产成人精品久久久国产成人一区| 久久久久久成人| 日本精品久久久久久久| 久久成人这里只有精品| 美女av一区二区| 日本不卡高字幕在线2019| 国产精品男人爽免费视频1| 97久久超碰福利国产精品…| 国产精品美女久久久久av超清| 海角国产乱辈乱精品视频| 久久精品国产96久久久香蕉| 亚洲黄页网在线观看| 国产女人精品视频| 在线观看国产欧美| 国产精品久久久久久久电影| 色噜噜狠狠色综合网图区| 亚洲人成在线观看| 亚洲欧美日韩天堂| 久久躁日日躁aaaaxxxx| 成人免费视频在线观看超级碰| 欧美日韩性视频在线| www欧美xxxx| 成人日韩在线电影| 91精品国产91久久久久福利| 日韩成人免费视频| 成人免费视频网| 欧美性xxxxxxxxx| 一道本无吗dⅴd在线播放一区| 亚洲新声在线观看| 国产成人aa精品一区在线播放| 久久精品国产精品亚洲| 黑人巨大精品欧美一区免费视频| 日韩精品在线免费观看视频| 亚洲成avwww人| 亚洲精品免费在线视频| 26uuu国产精品视频| 欧美激情一区二区久久久| 91高潮精品免费porn| 欧美精品一区三区| 日韩精品中文字幕视频在线| 亚洲嫩模很污视频| 国产精品久久久久久久久久久不卡| 亚洲国产一区自拍| 欧美野外wwwxxx| 亚洲精品电影久久久| 亚洲va码欧洲m码| 久久69精品久久久久久久电影好| 国产第一区电影| 亚洲精品国产免费| 久久精视频免费在线久久完整在线看| 亚洲aa在线观看| 久久久久久久网站| 亚洲视频在线观看网站| 国产精品678| 精品夜色国产国偷在线| 色噜噜狠狠色综合网图区| 97av在线影院| 中文字幕在线视频日韩| 日本欧美在线视频| 国产亚洲欧洲在线| 日韩国产在线播放| 亚洲欧美激情视频| 中文字幕视频在线免费欧美日韩综合在线看| 色777狠狠综合秋免鲁丝| 亚洲精品一区二三区不卡| 亚洲欧美激情一区| 国产激情综合五月久久| 欧美尤物巨大精品爽| 国产精品69av| 精品成人国产在线观看男人呻吟| 久久亚洲一区二区三区四区五区高| 欧美天天综合色影久久精品| www.久久撸.com| 国产精品自产拍在线观看中文| 丝袜美腿精品国产二区| 久久久久国产精品免费| 日韩二区三区在线| 欧美裸体男粗大视频在线观看| 日韩在线免费高清视频| 欧美在线亚洲一区| 亚洲精品乱码久久久久久金桔影视| 乱亲女秽乱长久久久| 日韩欧美aaa| 亚洲字幕一区二区| 精品国内产的精品视频在线观看| 亚洲激情视频在线| 欧美午夜激情视频| 欧美老女人在线视频| 91亚洲va在线va天堂va国| 大胆欧美人体视频| 国产乱人伦真实精品视频| 精品视频在线播放色网色视频| 91久久中文字幕| 亚洲精品视频网上网址在线观看| 黄色一区二区在线观看| 精品视频一区在线视频| 欧美国产乱视频| 中文字幕久久久| 夜夜狂射影院欧美极品| 国产美女精彩久久| 538国产精品视频一区二区| 精品视频9999| 国产精品久久久久久久久久新婚| 国产成人精品av| 秋霞午夜一区二区| 久久免费视频在线| 久久免费视频观看| 久久精品成人欧美大片古装| 日韩国产激情在线| 91视频88av| 亚洲人成伊人成综合网久久久| 91在线无精精品一区二区| 在线成人激情黄色| 欧美性xxxxx| 在线精品国产欧美| 日韩影视在线观看| 日韩福利视频在线观看| 国产有码一区二区| 欧美日韩高清在线观看| 欧美激情综合亚洲一二区| 欧美激情国产日韩精品一区18| 亚洲iv一区二区三区| 国产精品极品美女粉嫩高清在线| 国产精品爽爽爽爽爽爽在线观看| 欧美性受xxxx白人性爽| 亚洲欧美在线磁力| 91天堂在线视频| 国产盗摄xxxx视频xxx69| 国产成人精品一区| 亚洲一区二区国产| 国语自产精品视频在线看| 欧美最猛性xxxxx亚洲精品| 亚洲国产高潮在线观看| 日韩国产欧美精品在线| 亚洲欧洲av一区二区| 欧美尤物巨大精品爽| 热久久美女精品天天吊色| 91中文精品字幕在线视频| 中文字幕国内精品| 国产精品欧美一区二区| 好吊成人免视频| 91亚洲精品久久久| 亚洲第一av在线| 超碰97人人做人人爱少妇| 欧美黄色免费网站| 亚洲香蕉成视频在线观看| 欧美激情精品久久久久久久变态| 久久久久久国产精品久久| 最近更新的2019中文字幕| 丝袜美腿精品国产二区| 亚洲国产91精品在线观看| 黑人巨大精品欧美一区免费视频| 欧美疯狂xxxx大交乱88av| 精品久久久精品| 国产亚洲精品美女久久久| 日本国产欧美一区二区三区| 一本大道亚洲视频| 久久视频在线播放| 97色在线视频观看| 亚洲成人中文字幕| 久久综合久中文字幕青草| 精品国产拍在线观看|