




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Express的路由詳解路由路由是指如何定義應(yīng)用的端點(diǎn)(URIS以及如何響應(yīng)客戶端的請求。app.METHOD(pHTTP請求方法,路由是由一個(gè) URI、HTTP請求(GET POST等)和若干個(gè)句柄組成,它的結(jié)構(gòu)如下:ath, callback., callback), app 是 express 對象的一個(gè)實(shí)例,METHOD 是一個(gè)path是服務(wù)器上的路徑,callback是當(dāng)路由匹配時(shí)要執(zhí)行的函數(shù)。F面是一個(gè)基本的路由示例:F面這個(gè)例子展示了為應(yīng)用跟路徑定義的GET和POST請求:var express = require(express);var app = express();/ r
2、espond with hello world when a GET request is made to the homepage |app.get(/, fun cti on(req, res) res.se nd(hello world););路由方法路由方法源于HTTP請求方法,和express實(shí)例相關(guān)聯(lián)12/ GET method routeapp.get(/, fun cti on (req, res) 3res.se nd(GET request to the homepage);4);5/ POST method route6app.post(/, fun cti on (re
3、q, res) 78res.se nd(POST request to the homepage););Express 定義了如下和 HTTP 請求對應(yīng)的路由方法:get, post, put, head, delete, options, trace, copy, lock, mkcol, move, purge, propfind, proppatch, uniock, report, mkactivity, checkout, merge, m-s earch, notify, subscribe, unsubscribe, patch, search,和 connect。有些路由方法名
4、不是合規(guī)的JavaScript變量名,此時(shí)使用括號記法,比如:appm-search(/, function .app.all()是一個(gè)特殊的路由方法,沒有任何HTTP方法與其對應(yīng),它的作用是對于一個(gè)路徑上的所有請求加載中間件。在下面的例子中,來自“/secret的請求,不管使用GET POST PUT、DELETE或其他任何http模塊支持的HTTP請求,句柄都會(huì)得到執(zhí)行。?1app.all(7secret, fun cti on (req, res, n ext) con sole .lo g(Access ing the secret secti on .);8910);next();
5、II pass control to the next handler);3路由路徑路由路徑和請求方法一起定義了請求的端點(diǎn),它可以是字符串、字符串模式或者正則表達(dá)式。Express RoExpress使用path-to-regexp匹配路由路徑,請參考文檔查閱所有定義路由路徑的方法。ute Tester是測試基本 Express路徑的好工具,但不支持模式匹配。查詢字符串不是路由路徑的一部分。使用字符串的路由路徑示例:/匹配根路徑的請求app.get(/, fun cti on (req, res) res.se nd(root););/匹配/about路徑的
6、請求app.get(/about, fun cti on (req, res) res.se nd(about););/匹配/random.text路徑的請求app.get(/ra ndom.text, fun cti on (req, res) res.se nd(ra ndom.text);使用字符串模式的路由路徑示例:/匹配acd和abed app.get(/ab?cd, fun cti on(req, res) res.se nd(ab?cd););/ 匹配 abed、abbed、abbbcd 等 app.get(7ab+cd, fun cti on( req, res) res.se
7、 nd(ab+cd););/ 匹配 abed、abxcd、abRABDOMcd ab123cd 等 app.get(7ab*cd, fun cti on( req, res) res.se nd(ab*cd););/ 匹配 /abe 和 /abcde app.get(7ab(cd)?e, fun cti on(req, res) res.se nd(ab(cd)?e);11121314151617181920212223242526272829);字符?、+、*和()是正則表達(dá)式的子集,-和.在基于字符串的路徑中按照字面值解釋使用正則表達(dá)式的路由路徑示例:/匹配任何路徑中含有 a的路徑:app
8、.get(/a/, fun cti on( req, res) res.se nd(/a/););/ 匹配 butterfly、dragonfly,不匹配 butterflyman、dragonfly man 等app.get(/.*fly$/, fun cti on( req, res) res.se nd(/.*fly$/););路由句柄可以為請求處理提供多個(gè)回調(diào)函數(shù),其行為類似中間件。唯一的區(qū)別是這些回調(diào)函數(shù)有可能調(diào)用next(route)方法而略過其他路由回調(diào)函數(shù)??梢岳迷摍C(jī)制為路由定義前提條件,如果在現(xiàn)有路徑上 繼續(xù)執(zhí)行沒有意義,則可將控制權(quán)交給剩下的路徑。路由句柄有多種形式,可以
9、是一個(gè)函數(shù)、一個(gè)函數(shù)數(shù)組,或者是兩者混合,如下所示使用一個(gè)回調(diào)函數(shù)處理路由:?1app.get(/example/a, fun cti on (req, res) res.se nd(Hello from A!););3使用多個(gè)回調(diào)函數(shù)處理路由(記得指定next對象):app.get(/example/b, fun cti on (req, res, n ext) console.log(response will be sent by the next function .);n ext();, fun cti on (req, res) res.se nd(
10、Hello from B!););使用回調(diào)函數(shù)數(shù)組處理路由:var cb0 = fun cti on (req, res, n ext) con sole.log(CBO);next();var cb1 = fun cti on (req, res, n ext) con sole.log(CB1);next();457var cb2 = fun cti on (req, res) 7 I res.se nd(Hello from C!);|89app.get(/example/c, cbO, cb1, cb2);101112混合使用函數(shù)和函數(shù)數(shù)組處理路由:1112345678910var cb0 = fun cti on (req, res, n ext) con sole.log(CBO);next();-1var cb1 = fun cti on (req, res, n ext) con sole.log(CB1);next();app.get(/example/d, cb0, cb1, fun cti on (req, res, n ext) con sole .lo g(resp onse wi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國亞么膠數(shù)據(jù)監(jiān)測研究報(bào)告
- 創(chuàng)新項(xiàng)目實(shí)施中的教育內(nèi)容設(shè)計(jì)研究
- 技術(shù)賦能課堂變革打造高效教學(xué)環(huán)境研討會(huì)
- 教育政策在醫(yī)療設(shè)備研發(fā)中的作用
- 打造智能教育資源體系設(shè)計(jì)思維的探索與實(shí)踐
- 煙草制絲培訓(xùn)課件
- 公交優(yōu)先戰(zhàn)略2025年對城市交通擁堵治理的影響研究報(bào)告
- 浙江警官職業(yè)學(xué)院《戲曲劇目研習(xí)》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州電力高等專科學(xué)?!缎?dòng)物麻醉與監(jiān)護(hù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 公共衛(wèi)生應(yīng)急物資儲備體系建設(shè)實(shí)施方案在2025年的技術(shù)創(chuàng)新與應(yīng)用報(bào)告
- GB/T 41574-2022信息技術(shù)安全技術(shù)公有云中個(gè)人信息保護(hù)實(shí)踐指南
- GB/T 3672.2-2002橡膠制品的公差第2部分:幾何公差
- GB/T 18884.2-2015家用廚房設(shè)備第2部分:通用技術(shù)要求
- GB/T 12239-2008工業(yè)閥門金屬隔膜閥
- 軍標(biāo)類型整理文檔
- 山東中醫(yī)藥大學(xué)2020-2021學(xué)年內(nèi)科護(hù)理學(xué)試題及答案1
- DB32T 4174-2021 城市居住區(qū)和單位綠化標(biāo)準(zhǔn)
- 基本原理與性能特點(diǎn)多自由度電磁軸承課件
- Q∕SY 1836-2015 鍋爐 加熱爐燃油(氣)燃燒器及安全聯(lián)鎖保護(hù)裝置檢測規(guī)范
- 北京輸變電工程標(biāo)準(zhǔn)工藝應(yīng)用圖冊(圖文并茂)
- 儀器使用記錄表
評論
0/150
提交評論