【Npde.js】express以及nodemon

news2024/11/29 18:32:10

express

        • 初始Express
          • 什么是Express
          • 不使用Express可以创建web服务器吗?
          • Express能做什么
          • 安装Express
          • 监听GET请求和post请求
          • 获取URL中携带的查询参数
          • 获取URL中携带的动态参数
          • 托管静态资源
        • nodemon
          • 为什么使用nodemon

初始Express

什么是Express
  • 官方给出的概念,Express是基于Node.js平台,快速,开放,极简的web开发框架
  • 通俗的说,和node.js的http模块类似,是专门用来创建web服务器的
  • EXpress,本质上是一个npm的第三方包,提供了快速创建web服务器的便捷方法
  • 官网:http://www.expressjs.com.cn/
不使用Express可以创建web服务器吗?
  • 能,使用node.js提供的原生http模块即可
  • 那为什么不使用http模块呢?
  • http模块使用复杂,开发效率低。Express基于内置http模块进一步封装出来的,能够极大提高开发效率
  • Express是基于前者进一步封装出来的
Express能做什么
  • 对于前端程序员来说,最常见的两种服务器
  • Web网站服务器,专门对外提供web网页资源的服务器
  • API接口服务器,专门对外提供APi接口的服务器
  • 使用Express,就可以快速创建这两种服务器
安装Express
  • npm i express@4.17.1
// 导入express
const express = require('express')
// 创建web服务器
const app = express()
// 启动文本服务器
app.listen(80,()=>{
    console.log("80服务器启动")
})

在这里插入图片描述

监听GET请求和post请求
  • 通过app.get()方法,可以监听客户端的GET请求
  • 通过app.post()方法,可以监听客户端的POST请求
  • 通过res.send()方法,可以把处理好的内容,发送给客户端
// 监听客户端的GET请求
// 参数1,客户端请求的url地址
// 参数2,请求对应的处理函数
			//req,请求对象(包含了与请求相关的属性和方法)
			//res,响应对象,包含了与响应相关的属性和方法
app.get("/user", function (req, res) {
    // res.send()方法,可以把处理好的json内容,发送给客户端
    res.send({
        name: "乞力马扎罗",
        age: '24'
    })
})
app.post("/user", function (req, res) { 
     // res.send()方法,可以把处理好的文本内容,发送给客户端
    res.send("乞力马扎罗请求成功")
})
  • 我是在Apifox在线测试的,结果如下(代码还是敲一下才有印像)
  • 测试之前,可以重启一下服务器
  • GET请求
    在这里插入图片描述

在这里插入图片描述

  • POST请求
    在这里插入图片描述
获取URL中携带的查询参数
  • 通过req.query对象,可以访问客户端通过查询字符串的形式。查询发送到服务器的参数
  • req.query默认是空对象
app.get("/user", function (req, res) {
    // req.query默认是空对象
    // 当客户端使用?name=ls&age=24 这种查询字符串形式,发送到服务器的参数
    // 可以通过req.query对象访问到
    console.log(req.query)
})
  • 请求
    在这里插入图片描述

  • 终端打印出了
    在这里插入图片描述

获取URL中携带的动态参数
  • 通过req.params对象,可以访问url中,通过:匹配到的动态参数
  • 可以有多个动态参数
//:匹配传来的参数,注意冒号后面的属性名自己起名
app.post("/user/:id", function (req, res) {
     // res.send()方法,可以把处理好的文本内容,发送给客户端
    res.send("乞力马扎罗请求成功")
    console.log(req.params)
    //也可以把拿到的返回
    //res.send(req.params)
})
//多个动态参数
app.get("/user/:name/:age", function (req, res) {
    // req.query默认是空对象
    // 当客户端使用?name=ls&age=24 这种查询字符串形式,发送到服务器的参数
    // 可以通过req.query对象访问到
    console.log(req.query)
})
  • 以不同方式请求
  • 请求:http://127.0.0.1/user/1
  • 终端返回{ id: ‘1’ }
  • 请求:http://127.0.0.1/user/2
  • 终端返回{ id: ‘2’ }
  • 多个动态参数请求
    在这里插入图片描述
托管静态资源

express.static(),通过这个,可以方便的创建一个静态资源服务器

  • 通过代码将public目录下的图片,css文件,js文件对外开放访问
  • Express在指定的静态目录中查找文件,并对外提供资源的访问路径,因此,存放静态文件的目录名不会出现在url中
  • 访问图片地址类似:http://localhost:3000/images/bg.jpg,(不包括指定的静态目录)
  • 本次在项目中新建imgs文件夹,存放wechat.png文件
// 导入express
const express = require('express')
// 创建web服务器
const app = express()
// 启动文本服务器
app.listen(80, () => {
    console.log("80服务器启动http://127.0.0.1/")
})
//托管静态资源,imgs是你存放文件的文件名
app.use(express.static('./imgs'))
//托管多个静态资源,public是你存放文件的文件名
app.use(express.static('./public'))
  • 启动服务器,访问路径为http://127.0.0.1/wechat.png,就可以看到了
  • 如果托管多个静态资源目录,请多次调用express.static()函数
  • 访问静态资源时,express.static()函数会根据目录的添加顺序查找所需的文件,类似上面imgs和public都有wechat.png文件,优先按顺序查找,会先找imgs中的

挂载路径前缀

  • 如果希望在托管的静态资源访问路径之前,挂载路径前缀,可以打开指定路径下的文件
  • 使得访问路径变成http://127.0.0.1/imgs/wechat.png
app.use('/imgs',express.static('./imgs'))

nodemon

为什么使用nodemon
  • 编写调试Node.js的时候,需要频繁手动重启服务器,非常繁琐
  • 使用nodemon(http://www.npmjs.com/package/nodemon)这个工具,监听项目文件的变动,当代码被修改的时候,自动帮我们重启项目
  • 终端安装 npm install -g nodemon
  • 将node变为nodemon,运行项目的时候采用,nodemon 文件名 运行,就会边修改边自动重启了

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

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

相关文章

ctf pwn基础-1

在心中做了无数次决定,我终于还是准备学pwn了,为了继承学长的衣钵,更别说自己已经下定决心学习 c了,废话不多说下面正式开始。 目录 基础 实列讲解 基础 很多人一上来就叫你什么汇编啊、c啊什么的,让人往而却步&…

分布式任务调度处理方案(无代码)

业务涉及到,需要向数据库、redis、elasticsearch、MinIO写四份数据,这里存在分布式事务问题。如何解决问题,先分析cap,是要保证可用性,还是保证一致性。如何选择是CP还是AP?分析业务场景CP的场景&#xff1…

canvas样式与颜色,字体,图片,状态,形变

色彩 fillStyle color 设置图形的填充颜色。 strokeStyle color 设置图形轮廓的颜色。 备注: 一旦您设置了 strokeStyle 或者 fillStyle 的值,那么这个新值就会成为新绘制的图形的默认值。如果你要给每个图形上不同的颜色,你需要重新设置…

Java Scanner 类,超详细整理,适合新手入门

目录 一、什么是 Java Scanner 类? 二、引用数据类型 1、引用数据类型的定义 三、Scanner 类有哪些常用方法? hasNext()用法 四、next() 与 nextLine() 区别 next(): nextLine(): 五、使用 next 方法 五、使用 nextLine方法 一、什…

SkyWalking仪表盘使用

Skywalking仪表盘使用 1 仪表盘 作用:查看被监控服务的运行状态。 1)监控面板 1.1 APM APM:应用性能管理,通过各种探针采集数据,收集关键指标,同时搭配数据呈现以实现对应用程序性能管理和故障管理的系统化解决方案…

机器学习主要内容的思维导图

机器学习 机器学习: 定义:能够从经验中学习从而能够 把事情不断做好的计算机程序 人工智能的一个分支和 实现方式 理论基础:概率论 数理统计 线性代数 数学分析 数值逼近 最优化理论 计算复杂理论 核心要素:数据 算法 模型 机器…

【极海APM32替代笔记】HAL库外部定时器、系统定时器阻塞、非阻塞延时

【极海APM32替代笔记】HAL库外部定时器、系统定时器阻塞、非阻塞延时 外部定时器 采用定时器做延时使用时 需要计算好分频和计数 另外还要配置为不进行自动重载 对于50MHz的工作频率 分频为50-1也就是50M/501M 一次计数为1us 分频为50000-1也就是1k 一次计数为1ms 我配置的是…

论文解读 | [AAAI2020] 你所需要的是边界:走向任意形状的文本定位

目录 1、研究背景 2、研究的目的 3、方法论 3.1 Boundary Point Detection Network(BPDN) 3.2 Recognition Network 3.3 Loss Functions 4、实验及结果 论文连接:https://ojs.aaai.org/index.php/AAAI/article/view/6896 1、研究背景 最近,旨在…

2023美赛C题Wordle二三问分布预测和难度分类预测

文章目录前言题目介绍人数分布预测首先建立字母词典,加上时间特征数据预处理训练和预测函数保存模型函数位置编码模型及其参数设置模型训练以及训练曲线可视化预测人数分布难度分类预测总结前言 2023美赛选了C题,应该很多人会选,一看就好做&…

电动汽车充放电的优化调度(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

深度学习无监督磁共振重建方法调研(二)

深度学习无监督磁共振重建方法调研(二)Self-supervised learning of physics-guided reconstruction neural networks without fully sampled reference data(Magnetic Resonance in Medicine 2020)模型设计实验结果PARCEL: Physi…

如何保证数据的安全?对称和非对称加密,身份认证,摘要算法,数字证书等傻傻分不清?波哥图解带你彻底掌握

支付安全 1.基础概念 明文:加密前的消息叫“明文”(plain text) 密文:加密后的文本叫“密文”(cipher text) 密钥:只有掌握特殊“钥匙”的人,才能对加密的文本进行解密,…

功能测试三年,是时候做出改变了

前言 测试行业3年多经验,学历大专自考本科,主要测试方向web,PC端,wap站,小程序公众号都测试过,app也测过一些,C端B端都有,除功能外,接口性能也有涉猎,但是不…

day32 多线程(上)

文章目录相关概念codeThreadTest01ThreadTest02 编写一个类,直接继承java.lang.Thread,重写run方法ThreadTest03 实现线程的第二种方法ThreadTest04 采用匿名内部类的方式ThreadTest05 获取线程名字ThreadTest06 sleep方法sleep面试题ThreadTest08 终止线…

不同路径-力扣62-java 动态规划

一、题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径&#xff1f…

H12-831题库(有详细的解析)

1.(单选)某工程师利用2台路由器进行IPv6业务测试,通过运行BGP4模拟总部与分支的互联互通。如图所示,某工程师抓包查看R1发出的update报文。关于该报文信息的描述,以下哪个说法是正确的? A.该报文描述的路由的下一跳地址为:2001:db8::2345:1::1 B.该报文…

基于Pytorch,从头开始实现Transformer(编码器部分)

Transformer理论部分参考知乎上的这篇文章 Transformer的Attention和Masked Attention部分参考知乎上的这篇文章 Transformer代码实现参考这篇文章,不过这篇文章多头注意力实现部分是错误的,需要注意。 完整代码放到github上了,链接 Trans…

ASE50N06-ASEMI低压MOS管ASE50N06

编辑-Z ASE50N06在TO-252-2L封装里的静态漏极源导通电阻(RDS(ON))为15mΩ,是一款N沟道低压MOS管。ASE50N06的最大脉冲正向电流ISM为200A,零栅极电压漏极电流(IDSS)为1uA,其工作时耐温度范围为-55~175摄氏度。ASE50N06…

2年手动测试,裸辞后找不到工作怎么办?

我们可以从以下几个方面来具体分析下,想通了,理解透了,才能更好的利用资源提升自己。一、我会什么?先说第一个我会什么?第一反应:我只会功能测试,在之前的4年的中我只做了功能测试。内心存在一种…

LDPC码的编译码原理简述

关于fpga调用ldpc IP core的相关参数问题可以看我的另一篇文章 LDPC码由Gallager在1962年提出,全称为 Low Density Parity-check Codes 低密度奇偶校验码 它的译码性能可以逼近Shannon信道容量限,广富盛名的Turbo码也被证明是LDPC码的一个特例。并且LDPC…