【值得收藏】走进Node.js之将自己电脑摇身变成一台web服务器(http模块)

前言

前面与已经介绍了Node.js关于path路径模块,今天我们来讲一下http模块(个人觉得很有意思)。

补充

http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。

一、http模块

1.创建基本的web服务器

代码示例:

// 1. 导入http模块
const http = require('http')
// 2. 创建基本web服务器实例
const server = http.createServer()
// 3. 为服务器实例绑定 request 事件,监听客户端的请求
server.on('request',(req,res)=>{
	const str = `Your request url is ${req.url}, and request method is ${res.method}`
	console.log(str)
	// 3.1 为了防止中文显示乱码的问题,需要设置响应头 Content-Type的值为 text/html;  charset=utf-8 
	res.setHeader('Content-Type','text/html;charset=utf-8')
	// 3.2 给客户端响应内容
	res.end(str)
})
// 4. 启动服务器
server.listen(8080,()=>{
	console.log('server running at http:/127.0.0.1:8080')
})
// 注意:如果报错可能是端口被占用,需要改一下端口

说明:

  • req 请求对象
    • (1)req 是请求对象,它包含了与客户端相关的数据和属性
    • (2)req.url 获取客户端请求的 url 地址 ${req.url}
    • (3)req.method 获取客户端请求的类型 ${req.method}
  • res 响应对象
    • (1)res 是响应对象,它包含了与服务器相关的数据和属性
    • (2)res.end() 方法的作用:向客户端发送指定的内容,并结束这次请求的处理过程
  • 解决中文乱码问题
    • (1)当调用 res.end() 方法,向客户端发送中文内容的时候,会出现乱码问题,此时,需要手动设置内容的编码格式
    • (2)为了防止中文乱码问题,需要设置响应头,res.setHeader(‘Content-Type’, ‘text/html; charset=utf-8’)
2.根据不同的url访问不同内容(简单路由效果)

代码示例:

// 1. 导入http模块
const http = require('http')
// 2. 创建基本web服务器实例
const server = http.createServer()
// 3. 为服务器实例绑定 request 事件,监听客户端的请求
server.on('request',(req,res)=>{
	// 3.1 获取客户端请求URL地址
	const url = req.url
	// 3.2 设置默认响应内容
	let Content = '<h1>404 Not found!</h1>' 
	// 3.3 判断用户访问的是否为 / 或 /index.html 是则响应 首页
	if(url === '/' || url === '/index.html') { //注意: 这里要用全等
		Content = '<h1>首页</h1>'
	}
	// 3.4 判断用户访问的是否为 /about.html 是则响应 关于我的
	if(url === '/about.html') { //注意: 这里要用全等
		Content = '<h1>关于我的</h1>'
	}
	// 3.5 设置响应头防止出现中文乱码
	res.setHeader('Content-Type','text/html;charset=utf-8')
	// 3.6 响应内容
	res.end(Content)
})
// 4. 启动服务器
server.listen(8080,()=>{
	console.log('server running at http:/127.0.0.1:8080')
})
// 注意:如果报错可能是端口被占用,需要改一下端口

小结

本人觉得http模块很有意思,可以用http模块提供的方法将自己电脑摇身变成一台web服务器,从而对外提供web资源服务。

以上就是Node.js的http模块的内容 ,后续将会围绕Node.js的相关内容及其知识点不定期持续更新,感谢你们的关注和陪伴!(若有错误,请批评改正,谢谢~)

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小石Sir.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值