框架在接收的請求引數,只有乙個,被稱為請求上下文,就是乙個封裝了各種請求資料的物件。通過這樣的設計,把http/1.1 和 http/2協議的一些差異以及node.js版本演進帶來的一些不相容做了處理,出於設計和效能上的考慮,對於http2模組,封裝請求物件是stream,而不是http模組的incomingmessage和serverresponse(封裝物件是request和response)。
請求上下文屬性和基本描述屬性
描述version
協議版本,字串型別,為』1.1』 或 『2』。
major
協議主要版本號,1、2、3分別表示http/1.1 http/2 http/3(目前還沒有3)。
maxbody
支援的最大請求體位元組數,數字型別,預設為初始化時,傳遞的選項maxbody的值,可以在中介軟體中根據請求自動設定。
method
請求型別,get post等http請求型別,大寫字母的字串。
host
服務的主機名,就是request.headers[『host』]的值。
protocol
協議字串,不帶冒號,『https』、『http』、『http2』。
path
具體請求的路徑。
routepath
實際執行請求的路由字串。
query
url傳遞的引數。
param
路由引數。
files
上傳檔案儲存的資訊。
body
body請求體的資料,具體格式需要看content-type,一般為字串或者物件,也可能是buffer。
port
客戶端請求的埠號。
ip客戶端請求的ip位址,是套接字的位址,如果使用了**伺服器,需要檢測x-real-ip或是x-forwarded-for訊息頭獲取真正的ip。
headers
指向request.headers。
isupload
是否為上傳檔案請求,此時就是檢測訊息頭content-type是否為multipart/form-data格式。
name
路由名稱,預設為空字串。
group
路由分組,預設為空字串。
reply
http/1.1協議,指向response,http/2 指向stream。
request
http/1.1 就是http模組request事件的引數incomingmessage物件,http/2 指向stream物件。
response
http/1.1 是http模組的request事件的第二個引數response物件。http/2沒有此屬性。
box預設為空物件,可以新增任何屬性值,用來動態傳遞給下一層元件需要使用的資訊。
service
res乙個物件包括encoding、body屬性,用來暫存返回資料的編碼和具體資料。
helper
指向helper模組,提供了一些助手函式,具體參考wiki。
send
函式,用來設定res.body的資料並支援第二個引數作為狀態碼,預設狀態碼為200。
movefile
函式,用來移動上傳的檔案到指定路徑。
status
函式,設定狀態碼。
setheader
函式,設定訊息頭。
getfile
函式,獲取上傳的檔案資訊,其實就是讀取files屬性的資訊。
注意:send函式只是設定ctx.res.body屬性的值,在最後才會返回資料。和直接進行ctx.res.body賦值沒有區別,只是因為函式呼叫如果出錯會更快發現問題,而設定屬性值寫錯了就是新增了乙個新的屬性,不會報錯但是請求不會返回正確的資料。
使用titbit開發Web後端服務 配置選項
在初始化ttibit時,支援很多選項,完整選項如下 設定伺服器超時,毫秒單位,在具體的請求中,可以再設定請求的超時。timeout 18000 debug false 忽略路徑末尾的 ignoreslash true 啟用請求限制 uselimit false 最大連線數,0表示不限制 maxcon...
使用titbit開發Web後端服務02 路由和引數
http的起始行給出了請求型別,也被稱為 請求方法。目前的請求方法 get post put delete options trace head patch 1 use strict 23 const titbit require titibit 45 titbit 810 c.res.body s...
後端開發工程開發Web頁面框架
layui是一款採用自身模組規範編寫的前端 ui 框架,遵循原生 html css js 的書寫與組織形式,門檻極低,拿來即用。其外在極簡,卻又不失飽滿的內在,體積輕盈,元件豐盈,從核心 到 api 的每一處細節都經過精心雕琢,非常適合介面的快速開發。收費 1600永久授權 官網位址為 jquery...