前言
前面与已经介绍了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的相关内容及其知识点不定期持续更新,感谢你们的关注和陪伴!(若有错误,请批评改正,谢谢~)