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):
评论前必须登录!
注册