Express框架

本文深入介绍了Express框架,解释了为何使用框架而非原生http模块,强调了Express的核心——中间件机制。内容涵盖Express的安装、基本使用、中间件的应用,包括自定义中间件、内置中间件如body-parser的使用,以及第三方中间件如morgan和multer。此外,还讨论了客户端参数传递的多种方式。通过实例展示了Express如何简化Web服务器开发,提升代码组织和维护性。
摘要由CSDN通过智能技术生成

认识Web框架

前面我们已经学习了使用 http 内置模块来搭建 Web 服务器,为什么还要使用框架?
 
原生 http 在进行很多处理时,会较为复杂;
 
URL 判断、 Method 判断、参数处理、逻辑代码处理等,都需要我们自己来处理和封装;
 
并且所有的内容都放在一起,会非常的混乱;
  目前在 Node 中比较流行的 Web 服务器框架是 express koa
  我们先来学习 express ,后面再学习 koa ,并且对他们进行对比;
  express 早于 koa 出现,并且在 Node 社区中迅速流行起来:
 
我们可以基于 express 快速、方便的开发自己的 Web 服务器;
 
并且可以通过一些实用工具和中间件来扩展自己功能
Express 整个框架的核心就是中间件,理解了中间件其他一切都非常简单!
 

Express安装

express 的使用过程有两种方式:
 
方式一:通过 express 提供的脚手架,直接创建一个应用的骨架;
 
方式二:从零搭建自己的 express 应用结构;
 
 
方式一:安装 express-generator
安装脚手架
npm install -g express-generator
创建项目
express express-demo
安装依赖
npm install
启动项目
node bin/www
方式二:从零搭建自己的 express 应用结构;
npm init –y
npm install express -S
 

Express的基本使用

 
我们来创建第一个 express 项目:
 
我们会发现,之后的开发过程中,可以方便的将请求进行分离:
 
无论是不同的 URL ,还是 get post 等请求方式;
 
这样的方式非常方便我们已经进行维护、扩展;
 
当然,这只是初体验,接下来我们来探索更多的用法;
  请求的路径中如果有一些参数,可以这样表达:
 
/users/:userId
 
request 对象中药获取可以通过 req.params.userId;
  返回数据,我们可以方便的使用 json
 
res.json( 数据 ) 方式;
 
可以支持其他的方式,可以自行查看文档;
 
https://www.expressjs.com.cn/guide/routing.html
 

认识中间件

 
Express 是一个路由和中间件的 Web 框架,它本身的功能非常少:
 
Express 应用程序本质上是一系列中间件函数的调用;
 
中间件是什么呢?
 
中间件的本质是传递给 express 的一个回调函数;
 
这个回调函数接受三个参数:
  请求对象( request 对象);
  响应对象( response 对象);
  next 函数(在 express 中定义的用于执行下一个中间件的函数);
 
中间件中可以执行哪些任务呢?
 
执行任何代码;
 
更改请求( request )和响应( response )对象;
 
结束请求 - 响应周期(返回数据);
 
调用栈中的下一个中间件;
如果当前中间件功能没有结束请求 - 响应周期,则必须调用 next() 将控制权传递给下一个中间件功能,否则,请求
将被挂起
 

应用中间件 自己编写

那么,如何将一个中间件应用到我们的应用程序中呢?
 
express 主要提供了两种方式: app/router.use app/router.methods
 
可以是 app ,也可以是 router router 我们后续再学习 :
 
methods 指的是常用的请求方式,比如: app.get app.post 等;
  我们先来学习 use 的用法,因为 methods 的方式本质是 use 的特殊情况;
 
案例一:最普通的中间件
 
案例二: path 匹配中间件
 
案例三: path method 匹配中间件
 
案例四:注册多个中间件
 

应用中间件 – body解析

并非所有的中间件都需要我们从零去编写:
 
express 有内置一些帮助我们完成对 request 解析的中间件;
 
registry 仓库中也有很多可以辅助我们开发的中间件;
在客户端发送 post 请求时,会将数据放到 body 中:
 
客户端可以通过 json 的方式传递;
 
也可以通过 form 表单的方式传递;
 
 

编写解析request body中间件

应用中间件 – express提供

但是,事实上我们可以使用expres内置的中间件或者使用body-parser来完成:

如果我们解析的是 application/x-www-form-urlencoded

应用中间件 第三方中间件

如果我们希望将请求日志记录下来,那么可以使用 express 官网开发的第三方库: morgan
  注意:需要单独安装
 
上传文件,我们可以使用 express 提供的 multer 来完成:

上传文件中间件 添加后缀名

上传文件,我们可以使用express提供的multer来完成:

multer解析form-data

如果我们希望借助于multer帮助我们解析一些form-data中的普通数据,那么我们可以使用any

客户端发送请求的方式

客户端传递到服务器参数的方法常见的是 5 种:
 
方式一:通过 get 请求中的 URL params
 
方式二:通过 get 请求中的 URL query
 
方式三:通过 post 请求中的 body json 格式(中间件中已经使用过);
 
方式四:通过 post 请求中的 body x-www-form-urlencoded 格式(中间件使用过);
 
方式五:通过 post 请求中的 form-data 格式(中间件中使用过);
 

传递参数paramsquery

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值