這個對象一般由HTTP 服務(wù)器建立而非用戶自己手動建立。它作為'request'事件的第二個參數(shù),這是一個可寫流。
response.writeHead(statusCode, [reasonPhrase], [headers])
這個方法的是用來發(fā)送一個響應(yīng)報文頭給本次的請求方,第一個參數(shù)狀態(tài)碼是由一個3位數(shù)字所構(gòu)成的HTTP 狀 態(tài),比如404之類的。最后一個參數(shù)headers 是響應(yīng)頭具體內(nèi)容.也可以使用一個方便人們直觀了解的reasonPhrase 作為第二個參數(shù)。 例如:
var body = 'hello world';
response.writeHead(200, {
'Content-Length': body.length,
'Content-Type': 'text/plain'
});
在一次完整信息交互中此方法只能調(diào)用一次,并且必須在調(diào)用response.end()之前調(diào)用。
response.write(chunk, encoding='utf8')
此方法必須在writeHead 方法調(diào)用后才可以被調(diào)用,他負責發(fā)送響應(yīng)報文中的部分數(shù)據(jù)。如果要發(fā)送一個報文 體的多個部分,則可以多次調(diào)用此方法。
參數(shù)chunk 可以是一個字符串或者一個buffer。如果chunk 是一個字符串,則第二個參數(shù)指定如何將這個字符串 編碼成字節(jié)流,缺省情況下,編碼為'utf8'。
注意:這是一個原始格式http 報文體,和高層協(xié)議中的多段消息體編碼格式({'Transfer-Encoding':'chunked'})無關(guān)。 第一次調(diào)用response.write()時,此方法會將已經(jīng)緩沖的消息頭和第一塊消息體發(fā)送給客戶。當?shù)诙握{(diào)用 response.write()的時候,node 將假定你想要以流的形式發(fā)送數(shù)據(jù)(分別發(fā)送每一個數(shù)據(jù)塊并不做緩存)。這樣, 其實response 對象只是緩存消息體的第一個數(shù)據(jù)塊。
response.end([data], [encoding])
這個方法會告訴服務(wù)器此響應(yīng)的所有報文頭及報文體已經(jīng)發(fā)出;服務(wù)器在此調(diào)用后認為這條信息已經(jīng)發(fā)送完畢; 這個方法必須對每個響應(yīng)調(diào)用一次。
如果指定data 參數(shù),他就相當于調(diào)用了response.write(data, encoding)然后跟著調(diào)用了response.end()。
更多建議: