当前位置: 首页 > news >正文

Node.js之http模块

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

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

const http = require("http")

使用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
在这里插入图片描述
然后我们去浏览器输入127.0.0.1
在这里插入图片描述
事件监听到了输出1
在这里插入图片描述

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

在这里插入图片描述
我们发现乱码了,我们该如何处理?

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

在这里插入图片描述

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

相关文章:

Node.js之http模块

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

golang 断点调试

1.碰见如下报错,调试器没有打印变量信息 Delve is too old for Go version 1.21.2 (maximum supported version 1.19) 2. 解决办法 升级delve delve是go语言的debug工具。 go install github.com/go-delve/delve/cmd/dlvlatest报错 Get “https://proxy.golang.org/github…...

定时器如何计算触发频率?

定时器触发频率的计算公式为:定时器时钟频率/(预分频系数*计数周期1)。其中,定时器时钟频率是指定时器所连接的总线频率,预分频系数和计数周期需要根据具体的需求进行设置。预分频系数用于将总线频率分频,计…...

【数据库】数据库中的检查点Checkpoint,数据落盘的重要时刻

检查点(checkpoint) ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定…...

关于 Docker

关于 Docker 1. 术语Docker Enginedockerd(Docker daemon)containerdOCI (Open Container Initiative)runcDocker shimCRI (Container Runtime Interface)CRI-O 2. 容器启动过程在 Linux 中的实现daemon 的作用 Docker 是个划时代的开源项目,…...

​LeetCode解法汇总2342. 数位和相等数对的最大和

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 给你一个下…...

数据库的级联删除

级联删除是指在数据库中删除一个对象时,与该对象有关的其他对象也被自动删除。在 Django 中,级联删除通常通过在模型中定义外键时使用 on_delete 参数来实现。以下是一些常见的 on_delete 选项: 1.models.CASCADE: 当关联的对象被删除时&…...

【Python 千题 —— 基础篇】奇数列表

题目描述 题目描述 创建奇数列表。使用 for 循环创建一个包含 20 以内奇数的列表。 输入描述 无输入。 输出描述 输出创建的列表。 示例 示例 ① 输出: 创建的奇数列表为: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]代码讲解 下面是本题的代码: #…...

当npm下载库失败时可以用cnpm替代

下载cnpm npm install -g cnpm --registryhttp://registry.npmmirror.com 然后使用cnpm代替npm下载即可 cnpm install...

PyTorch多GPU训练时同步梯度是mean还是sum?

PyTorch 通过两种方式可以进行多GPU训练: DataParallel, DistributedDataParallel. 当使用DataParallel的时候, 梯度的计算结果和在单卡上跑是一样的, 对每个数据计算出来的梯度进行累加. 当使用DistributedDataParallel的时候, 每个卡单独计算梯度, 然后多卡的梯度再进行平均.…...

Spring Framework IoC依赖注入-按Bean类型注入

Spring Framework 作为一个领先的企业级开发框架,以其强大的依赖注入(Dependency Injection,DI)机制而闻名。DI使得开发者可以更加灵活地管理对象之间的关系,而不必过多关注对象的创建和组装。在Spring Framework中&am…...

IDEA运行thymeleaf的html文件打开端口为63342且连不上数据库

这边贴apple.html代码 <!DOCTYPE html> <html xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><title>User List</title> </head> <body> <h1>User List</h1> <table&…...

sql报错注入和联合注入

1.[NISACTF 2022]join-us 过滤&#xff1a; as IF rand() LEFT by updatesubstring handler union floor benchmark COLUMN UPDATE & sys.schema_auto_increment_columns && 11 database case AND right CAST FLOOR left updatexml DATABASES BENCHMARK BY sleep…...

028 - STM32学习笔记 - ADC结构体学习(二)

028 - STM32学习笔记 - 结构体学习&#xff08;二&#xff09; 上节对ADC基础知识进行了学习&#xff0c;这节在了解一下ADC相关的结构体。 一、ADC初始化结构体 在标准库函数中基本上对于外设都有一个初始化结构体xx_InitTypeDef&#xff08;其中xx为外设名&#xff0c;例如…...

Pytest自动化测试框架:mark用法---测试用例分组执行

pytest中的mark&#xff1a; mark主要用于在测试用例/测试类中给用例打标记(只能使用已注册的标记名)&#xff0c;实现测试分组功能&#xff0c;并能和其它插件配合设置测试方法执行顺序等。 如下图&#xff0c;现在需要只执行红色部分的测试方法&#xff0c;其它方法不执行&am…...

【TCP连接的状态】

linux查看tcp的状态命令&#xff1a; 1&#xff09;、netstat -nat 查看TCP各个状态的数量 2&#xff09;、lsof -i:port 可以检测到打开套接字的状况 3)、 sar -n SOCK 查看tcp创建的连接数 4)、tcpdump -iany tcp port 9000 对tcp端口为9000的进行抓包 查看占用端口…...

Node.js入门指南(一)

目录 Node.js入门 什么是Node.js Node.js的作用 Node.js安装 Node.js编码注意事项 Buffer(缓冲器&#xff09; 定义 使用 fs模块 概念 文件写入 文件读取 文件移动与重命名 文件删除 文件夹操作 查看资源状态 路径问题 path模块 Node.js入门 什么是Node.js …...

使用Grpc实现高性能PHP RPC服务

文档&#xff1a;Quick start | PHP | gRPC 下面将介绍使用 Grpc 和 Protobuf 实现高性能 RPC 服务的具体步骤&#xff1a; 1. 安装 Grpc 和 Protobuf 首先需要安装 Grpc 和 Protobuf。可以从官网下载相应的安装包&#xff08;Supported languages | gRPC&#xff09;或通过…...

二、爬虫-爬取肯德基在北京的店铺地址

1、算法框架解释 针对这个案例&#xff0c;现在对爬虫的基础使用做总结如下&#xff1a; 1、算法框架 (1)设定传入参数 ~url: 当前整个页面的url:当前页面的网址 当前页面某个局部的url:打开检查 ~data:需要爬取数据的关键字&…...

linux驱动开发.之spi测试工具spidev_test源码(一)

同i2c-tools工具类似&#xff0c;spidev_test是用来测试SPI BUS的用户态程序&#xff0c;其源码存在kernel目录下的tools下&#xff0c;具体为tools\spi\spidev_test.c。buildroot同样也提供名为spidev_test的package&#xff0c;可以直接进行编译&#xff0c;方便用户调试spi总…...

让本地的前端能被他人访问,一个免费域名的方式-Ngrok,支持MacOS、Windows、Linux、Docker等

ngrok官网&#xff0c;以macos系统为例 首先进入ngrok官网&#xff0c;找到本机操作系统所在的教程&#xff1a; 我尝试了官方推荐的brew&#xff1a; brew install ngrok ngrok config add-authtoken 替换成你的authtoken 接下来一步没有在教程中体现&#xff0c;但你需要…...

Parabol高级技巧:10个提升团队效率的隐藏功能

Parabol高级技巧&#xff1a;10个提升团队效率的隐藏功能 【免费下载链接】parabol Free online agile retrospective meeting tool 项目地址: https://gitcode.com/gh_mirrors/pa/parabol Parabol是一款免费的在线敏捷回顾会议工具&#xff0c;专为提升团队协作效率而设…...

Win11Debloat:5分钟解决Windows系统臃肿问题的终极方案

Win11Debloat&#xff1a;5分钟解决Windows系统臃肿问题的终极方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and c…...

从一次外业实验出发,聊聊GNSS差分与INS紧组合的那些门道

从一次外业实验出发&#xff0c;聊聊GNSS差分与INS紧组合的那些门道 去年夏天&#xff0c;我们在校园里进行了一次车载GNSS/INS数据采集实验。原本计划用三天完成的工作&#xff0c;因为一场突如其来的暴雨和几个始料未及的技术细节&#xff0c;硬是拖了一周才收尾。这次经历让…...

Drizzle ORM游标分页实战:解决大数据量分页性能瓶颈

1. 项目概述&#xff1a;为什么我们需要游标分页&#xff1f; 在构建现代Web应用&#xff0c;尤其是涉及大量数据列表展示的后台管理系统或内容平台时&#xff0c;分页是一个绕不开的核心功能。传统的分页方案&#xff0c;比如我们最熟悉的 LIMIT offset, size &#xff08;…...

SAP Migration Cockpit实战:手把手教你搞定物料主数据迁移(附Excel模板避坑指南)

SAP Migration Cockpit实战&#xff1a;物料主数据迁移全流程与Excel模板避坑指南 每次接手新的SAP实施项目&#xff0c;数据迁移总是让顾问们既期待又忐忑。作为系统切换的核心环节&#xff0c;物料主数据的迁移质量直接影响后续业务流程的顺畅度。最近在帮一家制造业客户实施…...

3分钟极速上手:免费获取百度网盘直链下载地址的完整指南

3分钟极速上手&#xff1a;免费获取百度网盘直链下载地址的完整指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘下载速度慢而烦恼吗&#xff1f;今天我要分…...

基于OpenClaw的PubMed文献检索技能开发:AI Agent科研助手实战

1. 项目概述&#xff1a;一个为AI Agent量身定制的科研文献助手 如果你正在使用OpenClaw这类AI Agent平台&#xff0c;并且日常工作或研究中需要频繁地与PubMed文献数据库打交道&#xff0c;那么你很可能经历过这样的场景&#xff1a;你向Agent描述了一个复杂的文献需求&#…...

DLSS Swapper终极指南:免费游戏性能优化神器

DLSS Swapper终极指南&#xff1a;免费游戏性能优化神器 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款功能强大的开源工具&#xff0c;专门用于管理游戏中的DLSS、FSR和XeSS动态链接库文件。这款免…...

戴尔燃7000电池鼓包自救指南:200块搞定官方600块的活儿(附详细拆机图)

戴尔燃7000电池鼓包实战处理手册&#xff1a;安全拆解与低成本焕新方案 笔记本电池鼓包是个不容忽视的安全隐患&#xff0c;尤其对于戴尔燃7000这类超薄机型。当发现触控板区域异常隆起、键盘手感变硬或续航断崖式下降时&#xff0c;很可能电池已进入危险状态。官方售后600元的…...