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