node.js 学习—— http 模块

本文介绍了如何利用Node.js的http模块创建web服务器。通过http.createServer()方法,服务器实例能监听并响应请求。在请求事件中,我们可以获取req和res对象,分别代表客户端数据和服务器端数据。res对象提供了如end()、setHeader()和writeHead()等方法来处理响应。最后,通过listen()方法启动服务器监听特定端口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http 模块 是 node.js 提供的,用来创建 web 服务器 的 模块,通过 http 模块提供的 http.createServer() 方法,就能让一台普通的电脑,变成一台 web服务器

1、创建实例 createServer

	const server = http.createServer();

2、绑定 事件

server.on( 事件名称,callback )

req:客户端相关数据和属性
res:服务器端相关数据和属性 res.end() :向客户端响应,不然一直转圈

server.on('request', function (req, res) {
    console.log('请求了');
    res.end('111');// 向客户端响应,不然网页一直转圈
})
HTTP模块对象的 http.ServerResponse 类

该对象在 HTTP 服务器内部被创建。 它作为第二个参数被传入 ‘request’ 事件,也就是我们的 res 对象。

该对象具有如下属性和方法:

response.getHeader(name) :读取一个已入队列但尚未发送到客户端的响应头。 注意,名称不区分大小写。

response.getHeaders() :返回当前响应头文件的浅拷贝。 由于使用了浅拷贝,因此数组值可能会改变,无需对各种与响应头相关的http模块方法进行额外调用。 返回对象的键是响应头名称,值是各自的响应头值。 所有响应头名称都是小写的。

response.getHeaderNames() :返回一个包含当前响应唯一名称的 http 头信息名称数组,名称均为小写。

response.hasHeader(name) :如果响应头当前有设置 name 头部,返回 true。请注意,名称匹配不区分大小写。

response.setHeader(name, value) :为一个隐式的响应头设置值。 如果该响应头已存在,则值会被覆盖。 如果要发送多个名称相同的响应头,则使用字符串数组。

注意:response.setHeader() 设置的响应头会与 response.writeHead() 设置的响应头合并,且 response.writeHead() 的优先。

response.writeHead(statusCode[, statusMessage][, headers]) :发送一个响应头给请求。 状态码是一个三位数的 HTTP 状态码,如 404。 最后一个参数 headers 是响应头。 第二个参数 statusMessage 是可选的状态描述。

该方法在消息中只能被调用一次,且必须在 response.end() 被调用之前调用。
没有设置头前调用 response.write() ,则隐式的响应头会被处理。

response.write(chunk[, encoding][, callback]) :chunk 可以是一个字符串或一个 buffer。 如果 chunk 是一个字符串,则第二个参数指定如何将它编码成一个字节流。 encoding 默认为 ‘utf8’。 当数据块被刷新时,callback 会被调用。

response.end([data][, encoding][, callback]) :该方法会通知服务器,所有响应头和响应主体都已被发送,即服务器将其视为已完成。 每次响应都必须调用 response.end() 方法。

response.finished :返回一个布尔值,表示响应是否已完成。 默认为 false。 执行response.end()之后,该值会变为 true。


3、启动服务器

server.listen( 启动端口 , callback )

server.listen(8080, function () {
    console.log('启动:http://127.0.0.1:8080');
})	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值