Node.js之http模块

http模块是什么?

http 模块是 Node,js 官方提供的、用来创建 web 服务器的模块。通过 http 模块提供的 http.createServer() 方法,就能方便的把一台普通的电脑,变成一台Web 服务器,从而对外提供 Web 资源服务。

如果我们想在node.js当中使用http模块需要做什么?

我们需要导入http模块

javascript 复制代码
const http = require("http")

使用http模块创建基础的web服务器

基本步骤

1.导http 模块

2.创建 web 服务器实例

3.为服务器实例绑定request 事件,监听客户端的请求

4.启动服务器

javascript 复制代码
// 1.导http 模块
const http = require("http")
// 2.创建 web 服务器实例
const sever = http.createSever()
// 3.为服务器实例绑定request 事件,监听客户端的请求
// 使用on绑定事件有两个参数 绑定的事件 回调函数 第一个参数为request请求 第二个参数为response响应
sever.on("request",(request,response)=>{
    console.log(1)
})
// 4.启动服务器
// 第一个参数是端口号 第二个参数是回调函数
sever.listen("80",()=>{
    console.log(2)
})

我们在终端输出,先输出2

然后我们去浏览器输入127.0.0.1

事件监听到了输出1

req请求对象

只要服务器接收到了客户端的请求,就会调用通过 server.on() 为服务器绑定的 request 事件处理函数如果想在事件处理函数中,访问与客户端相关的数据或属性,可以使用如下的方式:

req.ur1 是客户端请求的 URL 地址

req.method 是客户端的 method 请求类型

javascript 复制代码
const http = require("http")
const server = http.createServer()
server.on("request",function(req,res){
    // 请求之后打印结果
    console.log(req.url) //   打印/
    console.log(req.method) // GET
})
server.listen(80,()=>{
    console.log(1)
})

res响应对象

在服务器的 request 事件处理函数中,如果想访问与服务器相关的数据或属性,可以使用如下的方式:

javascript 复制代码
const http = require("http")
const server = http.createServer()
server.on("request",function(req,res){
    const str = "我是向客户端响应的内容"
    // 向客户端发送指定的内容,并结束这次请求的处理过程
    res.end(str)
})
server.listen(80,()=>{
    console.log(1)
})


我们发现乱码了,我们该如何处理?

javascript 复制代码
const http = require("http")
const server = http.createServer()
server.on("request",function(req,res){
    const str = "我是向客户端响应的内容"
    // 为了防止中文显示乱码的问题,需要设置响应头 Content-Type 的值为 text/html;  charset=utf-8
    res.setHeader("Content-Type","text/html;charset=utf-8")
    res.end(str)
})
server.listen(80,()=>{
    console.log(1)
})

感谢大家的阅读,如有不对的地方,可以向我提出,感谢大家!

相关推荐
REDcker40 分钟前
TCP/IP 协议栈详解:协议栈是什么意思?为什么叫“协议栈”?
网络·网络协议·tcp/ip
老蒋新思维1 小时前
反脆弱性设计:创始人IP与AI智能体如何构建愈动荡愈强大的知识商业|创客匠人
人工智能·网络协议·tcp/ip·算法·机器学习·创始人ip·创客匠人
工控小楠1 小时前
Profinet从站转EtherNet IP主站协议网关应用于自动化生产线
网络协议·tcp/ip·自动化
larance2 小时前
kylinv10 设置网卡自启动和固定ip
网络·网络协议
yBmZlQzJ4 小时前
财运到免费内网穿透端口转发使用指南:实现TCP_UDP服务高效穿透
网络协议·tcp/ip·udp
发光小北4 小时前
SG-CANET-210(双通道 CAN 转以太网网关)特点与功能介绍
网络协议
vipbic4 小时前
Strapi 5 怎么用才够爽?这款插件带你实现“建站自由”
后端·node.js
趴在窗边数星星4 小时前
Koa 源码深度解析:带你理解 Koa 的设计哲学和核心实现原理
node.js
小阿宁的猫猫7 小时前
CSRF漏洞的原理、防御和比赛中的运用
安全·http·xss·csrf
2501_915918417 小时前
TCP 抓包分析在复杂网络问题中的作用,从连接和数据流层面理解系统异常行为
网络·网络协议·tcp/ip·ios·小程序·uni-app·iphone