Nodejs Express 4.X 中文API 2--- Request篇

相關閱讀:javascript

 Express 4.X API 翻譯[一] --  Application篇html

 Express 4.X Api 翻譯[二] --  Request篇java

 Express 4.X Api 翻譯[三] --- Response篇jquery

 Express 4.X Api 翻譯[四] --- Router篇正則表達式

req.params

這是一個包含着被命名的路由規則「參數」的對象屬性。例如若是你有一個路由規則爲:」/user/:name」,而後這個」name」屬性你就可使用req.params.name來調用,這個屬性默認爲 {}express

當在定義路由規則的時候使用了正則表達式,匹配結果會被提供在數組裏使用req.params[N],這裏的N指的是第n個匹配數組。這樣的規則被應用在使用未命名的通配匹配規則,例如/file/*json

 req.query

這個屬性是一個對象屬性包含着被解析過的請求參數對象,默認爲{}api

 

 req.body

這個屬性是包含一個被解析過的請求體。這個功能是中間件 bodyParser 提供的,儘管其餘的請求體解析中間件也會很好的支持這樣的約定。這個屬性會在使用了bodyParser()的時候被定義爲{}。數組

 

 req.param(name)

返回一個參數名爲 name 的值cookie

查找的優先級以下:

  • req.params
  • req.body
  • req.query

直接訪問 req.body , req.params,和 req.query 應該是更加的清晰,除非你確實須要接受每一個對象的輸入。

req.route

當前匹配的 「Route」 包含一些屬性,例如路由的原始字符串以及轉換後的正則表達式等。

上面的例子將會輸出如下內容:

 

 req.cookies

當cookieParser()中間件被使用的時候,這個對象將會被初始化爲{},除此以外,還包含了由用戶代理髮送過來的cookies

若是有任何問題或者疑問,請查閱cookie-parser的附加文檔

req.signedCookies

當 cookieParser(secret)中間件被執行的時候,這個對象會被初始化爲{},還包含了用戶代理髮送過來的被簽名的cookie,未簽名的和準備使用的。簽名後的cookies被存放在一個單獨的對象內,不然,攻擊者會很輕鬆的替換掉」req.cookie」內的值。須要注意的是,簽名的cookies並不帶表它們是隱藏的或者是加密的,這個只是同於防止篡改cookies。

若是有任何問題或者疑問,請查閱cookie-parser的附加文檔

req.get(field)

獲取請求頭內的 field 字段,不區分大小寫,其中Referrer 和 Referer字段是可互換的。

別名爲 req.header(field);

 req.accepts(types)

檢查給定的類型 types 是否是能夠接受的類型,當是可接受的類型時返回最佳的匹配,不然返回 undefined – 在這種狀況下,你應該返回406″Not Acceptable」。

type 的值能夠是單一的一個mine類型的字符串,好比」application/json」,擴展名爲」json」,也能夠是一個以逗號分隔的列表或者數組。當爲列表或數組時將返回最佳匹配。

若是有任何問題或者疑問,請查閱accepts的附加文檔

req.acceptsCharset(charset)

檢查給定的 charset是不是能夠被接受的

若是有任何問題或者疑問,請查閱accepts的附加文檔

req.acceptsLanguage(lang)

檢查給定的 lang 是否爲可接受的

若是有任何問題或者疑問,請查閱accepts的附加文檔

req.is(type)

檢查提交進來的請求是否包含」Content-Type」頭字段和他匹配的給定的mime type

若是有任何問題或者疑問,請查閱 type-is 的附加文檔

req.ip

返回遠程地址,或者在反向代理啓用時返回上游ip地址。

 

 req.ips

當反向代理模式開啓時,解析 「X-Forwarded-For」 ip地址列表並返回一個數組,不然返回空數組。例如,若是一個值爲」client,proxy1,proxy2″你將會收到數組["client","proxy1","proxy2"]這裏能夠看出」proxy2″是最遠的下游地址。

req.path

返回請求的URL路徑名。

 

req.host

返回從「Host」請求內取出的主機名,可是不包含端口號。

 

 req.fresh

檢查請求是不是新的 – 經過對Last-Modified或者 ETag進行匹配,來標明這個資源是否是」新的」。

 

 req.stale

檢查這個請求是否是舊的 – 若是Last-Modified 或者 ETag 不匹配,標明這個資源是舊的。

 

 req.xhr

檢查請求頭裏是否有」X-Requested-With」這樣的字段而且值爲」XMLHttpRequest」(jQuery 等)請求時會設置這個頭

 

req.protocol

返回請求協議字符串 「http」或者」https」當請求爲TLS時。當被啓用反向代理時,」X-Forwarded-Proto」 請求頭將會被信任。若是你運行一個支持https協議的反向代理,那麼這個是會被支持的。

 

 req.secure

檢查TLS鏈接是否已經被創建。下面是一段簡寫

 req.subdomains

返回子域名數組

 

 req.originalUrl

這個屬性很像req.url,然而,他保留了原始請求的url,容許你在作內部路由的時候自由的重寫 req.url。例如,app.use()會重寫 req.url 爲掛載點

相關文章
相關標籤/搜索