node.js —— 解读http模块

目录

http模块:

http模块的引入:

创建web服务器的基本步骤:

 web服务器的一些基本属性:

上述知识汇总案例:


http模块:

http模块的引入:

const http = require ('http')

创建web服务器的基本步骤:

  • 导入 http 模块
  • 创建 web 服务器实例
  • 为服务器实例绑定 request 事件,监听客户端的请求
  • 启动服务器 
1、引入http模块:
const http = require('http')
2、创建web服务器实例:
const server = http.createServer()
3、为服务器实例绑定 request 事件,监听客户端的请求:
server.on('request', (req, res) => {console.log('Someone visited my web server')
})
4、启动服务器:
server.listen(2386, () => {console.log('server running at 127.0.0.1:2386');
})

 web服务器的一些基本属性:

req 请求对象:

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

server.on('request', (req, res) => {//req是请求对象,包含了与客户端的相应属性与数据//req.url是客户端请求的url地址//req.method是客户端请求的method请求类型console.log(`您请求的url地址是${req.url},您请求的方式是${req.method}`)
})
res 响应对象:

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

server.on('request', (req, res) => {// res是响应对象,他包含了服务器的数据与属性res.end(`您请求的url地址是${req.url},您请求的方式是${req.method}`)
})
 解决中文乱码问题:

当调用 res.end() 方法,向客户端发送中文内容的时候,会出现乱码问题,此时,需要手动设置内容的编码格式:

server.on('request', (req, res) => {//响应头,设置字符集为utf-8,防止网页出现乱码res.setHeader('Content-Type', 'text/html;charset=utf-8')// res.end()的作用是,向客户端发送指定的内容,并结束此次的请求处理res.end(`您请求的url地址是${req.url},您请求的方式是${req.method}`)
})

上述知识汇总案例:

const http = require('http')const server = http.createServer()
//req是请求对象,包含了与客户端的相应属性与数据
//req.url是客户端请求的url地址
//req.method是客户端请求的method请求类型// res是响应对象,他包含了服务器的数据与属性server.on('request', (req, res) => {console.log('Someone visited my web server')console.log(`您请求的url地址是${req.url},您请求的方式是${req.method}`)console.log(req);//响应头,设置字符集为utf-8,防止网页出现乱码res.setHeader('Content-Type', 'text/html;charset=utf-8')// res.end()的作用是,向客户端发送指定的内容,并结束此次的请求处理res.end(`您请求的url地址是${req.url},您请求的方式是${req.method}`)
})server.listen(2386, () => {console.log('server running at 127.0.0.1:2386');
})

根据不同的 url 响应不同的 html 内容:

  1. 获取请求的 url 地址
  2. 设置默认的响应内容为 404 Not found
  3. 判断用户请求的是否为 / 或 /index.html 首页
  4. 判断用户请求的是否为 /about.html 关于页面
  5. 设置 Content-Type 响应头,防止中文乱码
  6. 使用 res.end() 把内容响应给客户端

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/15311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索未来,与移动云共舞

探索未来,与移动云共舞 在数字化飞速发展的今天,云计算已经成为企业、政府乃至个人用户不可或缺的一部分。而在众多云服务提供商中,移动云凭借其独特的优势,为用户带来前所未有的体验。接下来,让我们一起走进移动云的世…

LeetCode题练习与总结:从中序与后序遍历序列构造二叉树--106

一、题目描述 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7], postorder [9,15,7,20,3] 输出…

等保三级云防火墙正版--免费部署满足要求

正版授权内部部署配置授权免费 1、超时退出 2、病毒防护 3、防火墙策略 4、密码复杂度和登录失败处理 5、特征库 点赞关注 私信获取 获取授权 Q 8-5-0-3-4-7-3-3-5

MCU复位电路

【单片机复位电路,巧妙的RC无处不在。】https://www.bilibili.com/video/BV1XW4y1571r?vd_source3cc3c07b09206097d0d8b0aefdf07958 左侧的RESET引脚正常情况下是低电平,是高电平复位;右侧的RESET引脚正常情况下是高电平,是低电…

【电源专题】什么是局部放电(Partial Discharge)

什么是局部放电? 当电压施加在含有两个以上绝缘材料的绝缘物体时,有一个绝缘材料发生放电且至少仍有一个绝缘材料维持正常的绝缘状态,此放电现象称之为局部放电(Partial Discharge)。 举例来说,当待测物的绝缘材料中存在异常气隙,因为空气的介电系数比绝缘材料低以及空气的…

家政服务,让您的家更温馨

家,是我们生活的港湾,也是我们心灵的归宿。在这个快节奏的时代,每个人都在为了生活而奔波。然而,家务琐事却常常成为我们忙碌生活中的绊脚石。为了解决这个问题,家政行业应运而生,为您的生活带来便利与舒适…

vite搭建React+ts+eslint+prettier

一、vite搭建ts模板 npm create vitelatest 项目名 -- --template react-ts//进入到项目文件夹 npm inpm run dev 初始化完成后已经配置好eslint src下一般只留下 初始化git仓库(可选) git init . 二、配置prettier npm i prettier eslint-config-prettier eslint-plugi…

【论文速读】GPT-1:Improving Language Understanding by Generative Pre-Training

摘要 自然语言理解包括广泛的不同的任务,如文本隐含、问题回答、语义相似性评估和文档分类。虽然大量的未标记文本语料库非常丰富,但用于学习这些特定任务的标记数据非常稀缺,这使得经过区别训练的模型要充分执行任务具有挑战性。我们证明&a…

Ubuntu(22.04)不能上网解决办法

想必大家可能在别的贴子看到用以下指令的方法,但是在22版本的ubuntu是行不通的,问题在于22版本中网络管理器的名字压根不是network-manager,而是 NetworkManager. sudo service network-manager stop sudo rm /var/lib/NetworkManager/Netw…

短剧APP开发,短剧行业发展下的财富密码

今年以来,短剧市场展现出了繁荣发展的态势,成为了一个风口赛道。 短剧具有不拖沓、时长短、剧情紧凑等优势,顺应了当代人的生活,是当代人的“电子榨菜”。 短剧的快速发展同时也带动了新业态新模式的发展,短剧APP就是…

ClickHouse vs. Elasticsearch: 计数聚合的工作原理

本文字数:7875;估计阅读时间:20 分钟 审校:庄晓东(魏庄) 介绍 在另一篇博客文章中,我们对 ClickHouse 和 Elasticsearch 在大规模数据分析和可观测性用例中的性能进行了比较,特别是对…

python-找出四位数中的玫瑰花数

【问题描述】玫瑰花数指一个n位数(n>4),其每位上的数字的n次幂之和等于本身。 请求出所有四位数中的玫瑰花数 【输入形式】 【输出形式】 【样例输入】 【样例输出】1634 8208 9474 【样例说明】 【评分标准】 完整代码如下: for n in ra…

《计算机网络微课堂》1-2:因特网概述

1-2:因特网概述 网络、互连网(互联网)和因特网因特网发展的三个阶段因特网的标准化工作因特网的组成 ‍ 网络、互连网(互联网)和因特网 我们首先介绍网络、互联网(互连网)因特网的基本概念&a…

ensp-三层交换技术

交换机-三层交换 一.概述 单臂路由有明显的缺陷,单臂路由的链路使用率高,可能会造成网路拥塞,造成网络不可用 可以让多个交换机连接路由器的不同接口,但是路由器的接口毕竟有限,不像交换机一样有那么多接口 使用三层交换解决路由器接口不够用问题 二.三层交换 1.创建多个VLAN…

魔众文库系统v6.6.0分销功能,后台日志重构,文档转换优化

分销功能,后台日志重构,文档转换优化 [新功能] 升级支持支付宝授权登录最新方式 [新功能] 后台左上角标题支持自定义,修改 modstart.php 中 admin.title 配置 [新功能] 日志界面重构,全新日志查看体验 [新功能] 链接选择弹窗增…

idea 出现 cpu占用100%

一、IDEA的CPU占用率过高 二、解决办法 idea安装路径bin目录 修改idea64.exe.vmoptions配置文件 原来的 -Xms128m -Xmx750m -XX:ReservedCodeCacheSize240m -XX:UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB50 修改为(IDEA优化内存配置) -Xms2048m -Xmx4096m -XX:Reser…

Android 项目中自定义多个 RadioButton 并排一列选择效果实现

文章目录 1、静态版实现1.1、实现要求1.2、实现步骤1.3、代码实现1.4、代码实现说明1.5、结论 2、项目版实现(动态)1、先看效果图2、main的布局文件3、定义RadioButton的属性4、最后在代码中生成我想要的东东5、说明 3、后续优化方向 1、静态版实现 1.1、实现要求 我们需要在…

1、pikachu靶场之xss钓鱼复现

一、复现过程 1、payload <script src"http://127.0.0.1/pkxss/xfish/fish.php"></script> 将这段代码插入到含有储存xss的网页上&#xff0c;如下留言板 2、此时恶意代码已经存入数据库&#xff0c;并存在网页中&#xff0c;当另一个用户打开这个网页…

SK6812-RGBW是一个集控制电路与发光电路于一体的智能外控LED光源

产品概述: SK6812-RGBW是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同&#xff0c;每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路&#xff0c;电源稳压电路&#xff0c;内置恒流电路&#xff0…

从 0 开始本地部署大语言模型

1、准备 ● Ollama&#xff1a;ollama.com ● Docker&#xff1a;https://docs.openwebui.com/ 2、下载 Ollama 进入 Ollama 官网&#xff0c;点击 Download 。 下载完成后&#xff0c;双击安装&#xff0c;什么都不需要勾选&#xff0c;直接下一步即可。安装完成&#xf…