response.writeHead()(在 v1..0 中添加)屬性是 ‘http’ 模塊的內置屬性,它向請求發送響應標頭。狀態碼是 3 位 HTTP 狀態碼,如 404。最後一個參數 headers 是響應頭。可選地,可以將人類可讀的 statusMessage 作為第二個參數。
當標頭已設置為 response.setHeader() 時,它們將與傳遞給 response.writeHead() 的任何標頭合並,其中傳遞給 response.writeHead() 的標頭優先。如果調用了這個方法並且沒有調用 response.setHeader(),它會直接將提供的 header 值寫入網絡通道而不進行內部緩存,並且 header 上的 response.getHeader() 不會產生預期的結果。如果希望在未來可能檢索和修改標頭的漸進式填充,請改用 response.setHeader()。
為了獲得響應和正確的結果,我們需要導入‘http’模塊。
導入:
const http = require('http');
用法:
response.writeHead(statusCode[, statusMessage][, headers]);
參數:它接受上麵提到的三個參數,如下所述:
- statusCode<number>:接受數字類型的狀態碼。
- statusMessage <string>:它接受任何顯示狀態消息的字符串。
- headers <Object>:它接受任何函數、數組或字符串。
返回值<http.ServerResponse>:它返回對 ServerResponse 的引用,以便可以鏈接調用。
下麵的示例說明了在 Node.js 中使用 response.writeHead() 屬性。
範例1: 文件名:index.js
// Node.js program to demonstrate the
// response.writeHead() Method
// Importing http module
var http = require('http');
// Setting up PORT
const PORT = process.env.PORT || 3000;
// Creating http Server
var httpServer = http.createServer(
function(request, response){
const body = 'hello world';
// Calling response.writeHead method
response.writeHead(200, {
'Content-Length':Buffer.byteLength(body),
'Content-Type':'text/plain'
});
response.end(body);
});
// Listening to http Server
httpServer.listen(PORT, () => {
console.log("Server is running at port 3000...");
});
輸出:
Output: In-Console
Server is running at port 3000…
現在在瀏覽器中運行http://localhost:3000 /。
Output: In-Browser
hello world
範例2: 文件名:index.js
// Node.js program to demonstrate the
// response.writeHead() Method
// Importing http module
var http = require('http');
// Setting up PORT
const PORT = process.env.PORT || 3000;
// Creating http Server
var httpServer = http.createServer(
function(request, response){
// Setting up Headers
response.setHeader('Content-Type', 'text/html');
response.setHeader('Set-Cookie', ['type=ninja',
'language=javascript']);
response.setHeader('X-Foo', 'bar');
// Calling response.writeHead method
response.writeHead(200,
{ 'Content-Type':'text/plain' });
// Getting the set Headers
const headers = response.getHeaders();
// Printing those headers
console.log(headers);
// Prints Output on the
// browser in response
response.end('ok');
});
// Listening to http Server
httpServer.listen(PORT, () => {
console.log(
"Server is running at port 3000...");
});
使用以下命令運行index.js文件:
node index.js
輸出:
Output:In-Console
Server is running at port 3000…
[Object:null prototype] {
‘content-type’:‘text/plain’,
‘set-cookie’:[ ‘type=ninja’, ‘language=javascript’ ],
‘x-foo’:‘bar’}
現在在瀏覽器中運行http://localhost:3000 /。
Output: In-Browser
ok
Content-Length以字節而不是字符給出。使用 Buffer.byteLength() 確定正文的長度(以字節為單位)。 Node.js 不會檢查 Content-Length 和已傳輸的正文長度是否相等。嘗試設置包含無效字符的標頭字段名稱或值將導致拋出 TypeError。
參考: https://nodejs.org/api/http.html#http_response_writehead_statuscode_statusmessage_headers
相關用法
- Node.js process.nextTick()用法及代碼示例
- Node.js GM solarize()用法及代碼示例
- Node.js MySQL Max()用法及代碼示例
- Lodash _.method()用法及代碼示例
- Node.js Http2ServerRequest.method用法及代碼示例
- Node.js http.IncomingMessage.method用法及代碼示例
- Collect.js toArray()用法及代碼示例
- Javascript RegExp toString()用法及代碼示例
- Tensorflow.js tf.Sequential.evaluate()用法及代碼示例
- Node.js URLSearchParams.has()用法及代碼示例
- JavaScript Math cosh()用法及代碼示例
- Node.js hmac.update()用法及代碼示例
- jQWidgets jqxFormattedInput val()用法及代碼示例
- HTML DOM isEqualNode()用法及代碼示例
- JavaScript Date toLocaleTimeString()用法及代碼示例
- Tensorflow.js tf.Tensor.buffer()用法及代碼示例
注:本文由純淨天空篩選整理自vikas_g大神的英文原創作品 Node.js response.writeHead() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。