切换主题
四、http模块
http模块是Node.js官方提供的、用来创建Web服务器的模块。通过http模块提供的http.createServer()方法,就能方便的把一台普通的电脑,变成一台Web服务器,从而对外提供Web资源服务
js
const http=require('http')
1、创建最基本的web服务器
1、创建web服务器的基本步骤
- 导入http模块
- 创建web服务器实例
- 为服务器实例绑定request事件,监听客户端的请求
- 启动服务器
1.步骤1-导入http模块
js
const http=require('http')
2.步骤2-创建web服务器实例
js
const server=http.createServer()
3.步骤3-为服务器实例绑定request事件
js
//使用服务器实例的.on方法,为服务器绑定一个request事件
server.on('request',(req,res)=>{
//只要有客户端来请求我们自己的服务器,就会触发request事件,从而调用这个事件处理函数
console.log('Someone visit our web server')
})
4.步骤4-启动服务器
js
//调用server.listen(端口号,cb回调)方法,即可启动web服务器
server.listen(8080,()=>{
console.log('运行在8080端口!')
})
2、req请求对象
只要服务器接收到客户端的请求,就会调用server.on()为服务器绑定的request事件处理函数。
如果想在事件处理函数中,访问于客户端相关的数据或属性,可以使用如下的方式
js
server.on('request',(req)=>{
//req是请求对象,它包含了于客户端相关的数据和属性,例如
//req.url是客户端请求的url地址
//req.method是客户端method请求类型
const str=`你的请求路径是${req.url},请求方式是${req.method}`
console.log(str)
})
3、res响应对象
在服务器的request事件处理函数中,如果想访问与服务器相关的数据或属性,可以使用如下的方式
js
server.on('request',(req,res)=>{
//res是响应对象,它包含了与服务器相关的数据和属性,例如:要发送到客户端的字符串
const str=`你的请求路径是${req.url},请求方式是${req.method}`
//res.end()方法的作用
//向客户端发送指定的内容,并结束这次请求的处理过程
res.end(str)
})
4、解决中文乱码问题
当调用res.end()方法,向客户端发送中文内容的时候,会出现乱码问题,此时,需要手动设置内容的编码格式
js
server.on('request',(req,res)=>{
//发送的内容包含中文
const str='你的请求路径是${req.url},请求方式是${req.method}'
//为了防止中文显示乱码的问题,需要设置响应头Content-Type的值为text/html;charset=utf-8
res.setHeader('Content-Type','text/html;charset=utf-8')
//把包含中文的内容,响应给客户端
res.end(str);
})