Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
Node.js 的 http
模块是 Node.js 核心模块之一,它允许你创建 HTTP 服务器和客户端。以下是一些关键知识点和代码示例:
1. 创建 HTTP 服务器
使用 http.createServer()
方法可以创建一个新的 HTTP 服务器实例。这个方法接受一个回调函数,该函数在服务器接收到请求时被调用,参数为 req
(请求对象)和 res
(响应对象)。
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World
');
});
server.listen(3000, () => {
console.log(`服务器运行在 http://localhost:3000/`);
});
2. 响应方法
Node.js 的 http
模块提供了多种方法来响应 HTTP 请求。以下是 http.ServerResponse
对象的一些常用方法及其作用:
-
writeHead(statusCode, [reasonPhrase], [headers]):
-
作用:发送一个 HTTP 响应头到客户端。
statusCode
是状态码,reasonPhrase
是可选的状态短语(例如:“OK”),headers
是一个包含头部字段的对象。 -
示例:
res.writeHead(200, { 'Content-Type': 'text/plain' });
-
-
write(chunk, [encoding]):
-
作用:发送一个 HTTP 响应体的片段。
chunk
是要发送的数据块,encoding
是数据的编码,默认为'utf8'
。 -
示例:
res.write('Hello, '); res.write('World!', 'utf8');
-
-
end([data], [encoding]):
-
作用:发送 HTTP 响应体的最后一个片段,并关闭连接。如果提供了
data
,则会先发送这个数据。 -
示例:
res.end('This is the end of the response.');
-
-
setHeader(name, value):
-
作用:设置响应头字段
name
的值为value
。 -
示例:
res.setHeader('Content-Type', 'application/json');
-
-
getHeader(name):
-
作用:返回响应头字段
name
的值。 -
示例:
const contentType = res.getHeader('Content-Type');
-
-
removeHeader(name):
-
作用:移除响应头字段
name
。 -
示例:
res.removeHeader('Content-Type');
-
-
addTrailers(headers):