三、Express 路由
一、路由
路由是指應(yīng)用程序的端點(diǎn)(URI)如何響應(yīng)客戶端請(qǐng)求.
你可以使用app與HTTP方法相對(duì)應(yīng)的Express對(duì)象的方法來定義路由.
例如,app.get()處理GET請(qǐng)求和app.post POST 請(qǐng)求。
你還可以使用app.all()處理所有HTTP方法,并使用app.use()將中間件指定為回調(diào)函數(shù).
這些路由方法指定在應(yīng)用程序收到對(duì)指定路由(端點(diǎn))和HTTP方法的請(qǐng)求時(shí)調(diào)用的回調(diào)函數(shù)(有時(shí)稱為“處理函數(shù)”)。換句話說,應(yīng)用程序“偵聽”與指定的路由和方法匹配的請(qǐng)求,并且當(dāng)它檢測(cè)到匹配項(xiàng)時(shí),它將調(diào)用指定的回調(diào)函數(shù)。
實(shí)際上,路由方法可以具有多個(gè)回調(diào)函數(shù)作為參數(shù)。對(duì)于多個(gè)回調(diào)函數(shù),重要的是提供next回調(diào)函數(shù)的參數(shù),然后next()在函數(shù)體內(nèi)調(diào)用以將控制權(quán)移交給下一個(gè)回調(diào)。
以下代碼是一個(gè)非常基本的路由示例。
二、路由方法
路由方法是從HTTP方法之一派生的,并附加到express該類的實(shí)例。
以下代碼是為GET和POST方法定義的到應(yīng)用根目錄的路由的示例。
Express 支持與所有HTTP 請(qǐng)求方法相對(duì)應(yīng)的方法:get,post等。有關(guān)完整列表,請(qǐng)參見app.METHOD。
有一種特殊的路由方法,app.all()用于為所有HTTP請(qǐng)求方法的路徑加載中間件功能。
例如,無論是使用GET,POST,PUT,DELETE 還是http模塊支持的任何其他HTTP請(qǐng)求方法,都會(huì)對(duì)路由/secret的請(qǐng)求執(zhí)行以下處理程序。
三、路由路徑
路由路徑與請(qǐng)求方法結(jié)合,定義了可以進(jìn)行請(qǐng)求的端點(diǎn).
路由路徑可以是字符串,字符串模式或正則表達(dá)式.
字符?,+,*,和()是他們的正則表達(dá)式的對(duì)應(yīng)的子集.
連字符(-)和點(diǎn)(.)由基于字符串的路徑按字面意義進(jìn)行解釋.
如果你需要在路徑字符串中使用美元字符(),請(qǐng)將其轉(zhuǎn)義([并括在和中]).
例如,"/data/$book"處用于請(qǐng)求的路徑字符串將為"
/data/([$])book".
四、路徑參數(shù)
路由參數(shù)被命名為URL段,用于捕獲URL中在其位置處指定的值。捕獲的值將填充到req.params對(duì)象中,并將路徑中指定的 route參數(shù)的名稱作為其各自的鍵。
要使用路由參數(shù)定義路由,只需在路由路徑中指定路由參數(shù),如下所示。
五、路由處理程序
您可以提供行為類似于中間件的多個(gè)回調(diào)函數(shù)來處理請(qǐng)求。唯一的例外是這些回調(diào)可能會(huì)調(diào)用next(‘route’)以繞過其余的路由回調(diào)。您可以使用此機(jī)制在路由上施加先決條件,然后在沒有理由繼續(xù)使用當(dāng)前路由的情況下將控制權(quán)傳遞給后續(xù)路由。
路由處理程序可以采用函數(shù),函數(shù)數(shù)組或二者組合的形式,如以下示例所示。
單個(gè)回調(diào)函數(shù)可以處理路由。例如:
多個(gè)回調(diào)函數(shù)可以處理一條路由(請(qǐng)確保指定了next對(duì)象)。例如:
回調(diào)函數(shù)數(shù)組可以處理路由。例如:
獨(dú)立功能和功能數(shù)組的組合可以處理路由。例如:
六、應(yīng)對(duì)方法
res下表中響應(yīng)對(duì)象()上的方法可以將響應(yīng)發(fā)送到客戶端,并終止請(qǐng)求-響應(yīng)周期。如果沒有從路由處理程序調(diào)用這些方法,則客戶端請(qǐng)求將被掛起。
七、app.route()
可以使用來為路由路徑創(chuàng)建可鏈接的路由處理程序app.route()。
由于路徑是在單個(gè)位置指定的,因此創(chuàng)建模塊化路由非常有幫助,減少冗余和錯(cuò)別字也很有幫助。
這是使用定義的鏈?zhǔn)铰酚商幚沓绦虻氖纠齛pp.route()。
八、快速路由器
使用express.Router該類創(chuàng)建模塊化的,可安裝的路由處理程序。一個(gè)Router 實(shí)例是一個(gè)完整的中間件和路由系統(tǒng);因此,它通常被稱為“迷你應(yīng)用程序”。
以下示例將路由器創(chuàng)建為模塊,在其中加載中間件功能,定義一些路由,并將路由器模塊安裝在主應(yīng)用程序的路徑上。
總結(jié)
以上是生活随笔為你收集整理的三、Express 路由的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS面向对象——Object.defin
- 下一篇: pip install 时报错 ERRO