這個(gè)對(duì)象通常由HTTP SERVER 建立而非用戶手動(dòng)建立,并且會(huì)作為傳遞給'request'事件監(jiān)聽器第一個(gè)參數(shù) 此對(duì)象的可以觸發(fā)以下事件:
Event: 'data'
function (chunk) { }
當(dāng)接收到信息體中的一部分時(shí)候會(huì)發(fā)出data 事件。 例如:代表消息體的數(shù)據(jù)塊將作為唯一的參數(shù)傳遞給回調(diào)函數(shù)。這個(gè)時(shí)候數(shù)據(jù)已經(jīng)按照傳輸編碼進(jìn)行了解碼(不 是字符集編碼)。消息體本身是一個(gè)字符串,可以使用request.setBodyEncoding()方法設(shè)定消息體的編碼。
Event: 'end'
function () { }
每次完全接收完信息后都會(huì)觸發(fā)一次。沒有參數(shù),當(dāng)這個(gè)事件發(fā)出后,將不會(huì)再觸發(fā)其他事件。
request.method
request.method 是一個(gè)只讀字符串。例如'GET','DELETE'
request.url
代表所請(qǐng)求的URL 字符串.他僅包括實(shí)際的HTTP 請(qǐng)求中的URL 地址。如果這個(gè)請(qǐng)求是
GET /status?name=ryan HTTP/1.1\r\n
Accept: text/plain\r\n
\r\n
則request.url 應(yīng)當(dāng)是
'/status?name=ryan'
如果你想要解析這個(gè)URL 中的各個(gè)部分,你應(yīng)當(dāng)使用require('url').parse(request.url). Example:
node> require('url').parse('/status?name=ryan')
{ href: '/status?name=ryan'
, search: '?name=ryan'
, query: 'name=ryan'
, pathname: '/status'
}
如果你想從查詢字符串中提出這些參數(shù),你可以使用require('querystring').parse 方法,或者傳一個(gè)true 作為第二個(gè) 參數(shù)給require('url').parse 方法。 Example:
node> require('url').parse('/status?name=ryan', true)
{ href: '/status?name=ryan'
, search: '?name=ryan'
, query: { name: 'ryan' }
, pathname: '/status'
}
request.headers
只讀
request.httpVersion
這是HTTP 協(xié)議版本( 字符串形式) , 只讀。例如'1.1','1.0' 。request.httpVersionMajor 是第一個(gè)數(shù)字, request.httpVersionMinor 是第二個(gè)數(shù)字。
request.setEncoding(encoding='null')
設(shè)置此請(qǐng)求的包體的字集編碼,'utf8'或者'binary'。缺省值是null,這表示'data'事件的參數(shù)將會(huì)是一個(gè)Buffer 對(duì)象。
request.pause()
暫停此request 觸發(fā)事件.對(duì)于控制上傳非常有用。
request.resume()
恢復(fù)一個(gè)暫停的request。
request.connection
request.connection 是一個(gè)代表當(dāng)前連接的net.Stream 對(duì)象。 對(duì)于HTTPS,使用request.connection.verifyPeer() 和request.connection.getPeerCertificate()來獲得客戶端(瀏覽 器)的認(rèn)證詳情。
更多建議: