Node.js之http模块

news/2024/7/24 5:04:39 标签: node.js, http, 网络协议
http://www.w3.org/2000/svg" style="display: none;">

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

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

const http = require("http")

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

基本步骤
1.导http 模块
2.创建 web 服务器实例
3.为服务器实例绑定request 事件,监听客户端的请求
4.启动服务器

// 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
https://img-blog.csdnimg.cn/5effb3ad761242488fcd3bc99f03addd.png" alt="在这里插入图片描述" />
然后我们去浏览器输入127.0.0.1
https://img-blog.csdnimg.cn/e8d5d9c9850b4411a69bf5df4b83d60b.png" alt="在这里插入图片描述" />
事件监听到了输出1
https://img-blog.csdnimg.cn/3a2770b270834d19af77259153b8c3b1.png" alt="在这里插入图片描述" />

req请求对象

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

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 事件处理函数中,如果想访问与服务器相关的数据或属性,可以使用如下的方式:

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)
})

https://img-blog.csdnimg.cn/48bafc4ba25e42fc921e908c7c5f5bbb.png" alt="在这里插入图片描述" />
我们发现乱码了,我们该如何处理?

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)
})

https://img-blog.csdnimg.cn/66bfd78013374b11bacad830fa5c5a79.png" alt="在这里插入图片描述" />

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


http://www.niftyadmin.cn/n/5197364.html

相关文章

josef约瑟 闭锁继电器 LB-7DG 100V 50HZ 导轨安装

LB-7型闭锁继电器 闭锁继电器LB-7导轨安装 一、用途 LB-7型闭锁继电器(以下简称继电器)用于发电厂及变电所内高压母线带电时防止和接地刀闸。 二、结构和工作原理 1、继电器按整流式原理构成,该继电器由变压器、电阻器、整流桥、滤波电容、极化继电器及指示灯组…

自定义类使用ArrayList中的remove

Java中ArrayList对基础类型和字符串类型的删除操作,直接用remove方法即可。但是对于自定义的类来说,用remove方法删除不了,因为没有办法确定是否是要删除的对象。 ArrayList中remove源码是: public boolean remove(Object o) {if…

C语言 蓝牙通信

在C语言中,进行蓝牙通信通常需要使用特定的库或API来实现。这些库或API提供了与蓝牙硬件进行通信的功能。 一种常见的蓝牙API是BlueZ,它是Linux操作系统的官方蓝牙协议栈。BlueZ提供了一组C语言的API,可以用于与蓝牙硬件进行通信。我们可以在…

SpringDoc基础配置和集成OAuth2登录认证教程

本期内容 学会通过注解和Java代码的方式添加SpringDoc配置。在swagger-ui提供的页面上提供OAuth2登录认证,在集成Security的情况下便捷获取access_token并在请求时按照OAuth2规范携带。 为什么集成OAuth2登录认证? 现在大部分教程是在swagger-ui页面添…

maven 构建指定模块

mvn clean install -pl module2 -am

java桌面程序

目标之一是把打印导出的功能最终用java实现一套,首先选定javafx,因为idea默认创建工程就带的javafx,没找到swing。 创建工程,这里要选1.8,高版本jdk默认不带fx 实现主界面的代码 package sample;import javafx.app…

Linux驱动开发——块设备驱动

目录 一、 学习目标 二、 磁盘结构 三、块设备内核组件 四、块设备驱动核心数据结构和函数 五、块设备驱动实例 六、 习题 一、 学习目标 块设备驱动是 Linux 的第二大类驱动,和前面的字符设备驱动有较大的差异。要想充分理解块设备驱动,需要对系统…

移动端获取ua头的值

目录: 1、检测地址2、测试结果 1、检测地址 http://www.ip138.com/useragent/ 2、测试结果 成功的拿到了ua头的值了,亲测可行!!!