關於req.params、req.param(name)、req.query、req.body等請求物件
請求物件,通常傳遞到回撥方法,這意味著你可以隨意命名,通常命名為 req 或 request 。
請求物件中最常用的屬性和方法有:
req.params
一個數組,包含命名過的路由引數。
req.param(name)
返回命名的路由引數,或者 GET 請求或 POST 請求引數。建議你忽略此方法。
req.query
一個物件,包含以鍵值對存放的查詢字串引數(通常稱為 GET 請求引數) 。
req.body
一個物件,包含 POST 請求引數。這樣命名是因為 POST 請求引數在 REQUEST 正文中傳遞,而不像查詢字串在 URL 中傳遞。要使 req.body 可用,需要中介軟體能夠解析請求正文內容型別。
req.route
關於當前匹配路由的資訊。主要用於路由除錯。
req.cookies/req.singnedCookies
一個物件,包含從客戶端傳遞過來的 cookies 值。
req.headers
從客戶端接收到的請求報頭。
req.accepts([types])
一個簡便的方法,用來確定客戶端是否接受一個或一組指定的型別(可選型別可以是單個的 MIME 型別,如 application/json 、一個逗號分隔集合或是一個數組) 。寫公共API 的人對該方法很感興趣。假定瀏覽器預設始終接受 HTML。
req.ip
客戶端的 IP 地址。
req.path
請求路徑(不包含協議、主機、埠或查詢字串) 。
req.host
一個簡便的方法,用來返回客戶端所報告的主機名。這些資訊可以偽造,所以不應該用於安全目的。
req.xhr
一個簡便屬性,如果請求由 Ajax 發起將會返回 true 。
req.protocol
用於標識請求的協議( http 或 https ) 。
req.secure
一個簡便屬性,如果連線是安全的,將返回 true 。等同於req.protocol===’https’ 。
req.url/req.originalUrl
有點用詞不當,這些屬性返回了路徑和查詢字串(它們不包含協議、主機或埠) 。req.url 若是出於內部路由目的,則可以重寫,但是req.orginalUrl 旨在保留原始請求和查詢字串。
req.acceptedLanguages
一個簡便方法,用來返回客戶端首選的一組(人類的)語言。這些資訊是從請求報頭中解析而來的。