4.http模块

news/2025/1/14 22:21:17/

http模块是Node.js官方提供创建web服务器的模块,在使用http模块前首先导入http模块

目录

1  一些概念

1.1  IP

1.2  域名

1.3  端口

2  创建一个基本的web服务器

3  req请求对象

4  res响应对象

5  不同地址获取不同响应

6  在服务中加载html文件

6.1  基础功能

6.2  优化url


1  一些概念

1.1  IP

每一个服务器都有他自己的IP,有的使用了域名挡住了IP,你可以使用ping看到域名下的ip

直接访问IP也可以打开百度的首页

1.2  域名

每一个域名对应着一个IP,域名相对于IP更好记,本机的IP是127.0.0.1,对应的域名是localhost

1.3  端口

一个IP可以开多个服务,通过请求不同的端口可以得到不同的响应,在浏览器中如果直接输入IP,访问的端口默认是80

一个端口只能被一个服务占用

2  创建一个基本的web服务器

分为4步

  • 导入http模块
  • 创建server实例
  • 给server实例绑定request事件
  • 部署在某一个端口上

  • 箭头函数与function() {}是一样的,不了解箭头函数的可以看一下这个 https://blog.csdn.net/potato123232/article/details/124706016

运行一下

  • 如果你对代码做了修改,且你想使修改生效,那么你需要重新启动一遍代码

这个时候你的PowerShell是阻塞的,你不要关了这个终端,关了服务就没了

我们用浏览器访问一下,发现有请求记录

但是在浏览器上没有得到响应

3  req请求对象

req请求对象就是上面我们server绑定request的第一个参数

有下面几个常用属性,返回值的类型都是字符串

  • req.url 请求的地址
  • req.method 请求的方法

我们随便看几个

运行一下

用浏览器先访问 127.0.0.1 再访问 127.0.0.1/test

如果用postman或者Ajax这种就可以发一个post请求,在这里我就不测试了

4  res响应对象

比如我们想响应给客户端一些内容,我们可以使用res.end()

  • res.end()中可以写html字符串

运行后无论你访问哪一个路由都会显示hello

如果直接给中文会就会乱码

这个时候我们要对响应头进行一些设置

5  不同地址获取不同响应

6  在服务中加载html文件

6.1  基础功能

可以用fs,path模块配合http模块来加载html文件

我当前的项目结构是这样的,server.js是服务,index.html,index.css,index.js与server.js在相同的路径下

server.js代码

  • 如果设置响应头为这样 res.setHeader('Content-Type','text/html;charset=utf8') 会导致CSS与JS加载不出来

6.2  优化url

可以优化一下url,让用户输入起来更方便,实质上对url进行一些处理就好了


http://www.ppmy.cn/news/5123.html

相关文章

安装ZIMG 图片服务器

简介:zimg是图像存储和处理服务器。您可以使用URL参数从zimg获取压缩和缩放的图像。 zimg的并发I / O,分布式存储和时间处理能力非常出色。 您不再需要在图像服务器中使用nginx。在基准测试中,zimg可以在高并发级别上处理每秒3000图像下载任务…

实战三十二:基于knn算法的用户购物消费预测代码+数据

K近邻算法通过计算被分类对象与训练集对象之间的距离,确定其k个临近点,然后使用这k个临近点中最多的分类作为分类结果。 如上图,当K=3时,它会被分类为 Class B。因为K=3时,3个临近点里有2个是B类的。 同理,K=7时它会被分类为 Class A,因为K=7时,7个临近点里4个是A类的…

【Three.js入门】图形用户界面GUI、BufferGeometry创建矩形、随机生成多个随机颜色的三角形

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端 📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀未…

MCMC算法

一. MCMC算法定义 MCMC是Markov chain Monte Carlo的缩写,即马尔可夫链蒙特卡罗方法。MCMC是一组利用马尔可夫链从随机分布中取样的算法。生成的马氏链即是对于目标分布的近似估计。常见算法: Metropolis-Hastings算法Gibbs取样算法Hamiltonian Monte C…

SpringMVC的AOP总结

SpringMVC的AOP总结 1、Filter 过滤器 Filter是Servlet规范中规定的,只能用于WEB中, 在Servlet前后起作用 它可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次 使用场景: 修改字符编码; 对入参进行校验, 校验不通过返回…

sklearn.metrics中micro和macro的区别

sklearn安装 先看以下示例,区分micro和macro的区别,这里直接调用sklearn封装好的接口,如果没有安装sklearn可以使用以下命令进行安装: pip install scikit-learn如果直接使用 pip install sklearn是没有作用的,将会…

Java真的不难(五十二)Stream流的深入理解与流式编程

Stream流的深入理解与流式编程: 在今年年初小应学长也写过Stream与Lambda的两篇文章,今天先将两者结合起来进行流式编程 一、关于这两者 Stream与Lambda都是Java8引入的新概念,lambda在Java编程中对于函数式编程的支持,有助于代…

const成员,流插入,流提取重载,初始化列表!(6千字长文详解!)

c详解之const成员&#xff0c;流插入&#xff0c;流提取重载&#xff0c;初始化列表&#xff01; 文章目录c详解之const成员&#xff0c;流插入&#xff0c;流提取重载&#xff0c;初始化列表&#xff01;<< 流插入 和 >> 流提取的重载解决共有成员函数问题链式访问…