Express框架

Web框架

Web框架

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是一个路由和中间件的Web框架,它本身的功能非常少:

 Express应用程序本质上是一系列中间件函数的调用;

中间件是什么

中间件的本质是传递给express的一个回调函数;
 这个回调函数接受三个参数:
✓ 请求对象(request对象);
✓ 响应对象(response对象);
✓ next函数(在express中定义的用于执行下一个中间件的函数);

认识中间件

中间件中可以执行哪些任务呢?
 执行任何代码;
 更改请求(request)和响应(response)对象;

 结束请求-响应周期(返回数据);
 调用栈中的下一个中间件;
◼ 如果当前中间件功能没有结束请求-响应周期,则必须调用next()将控制权传递给下一个中间件功能,否则,请求
将被挂起。

应用中间件 – 自己编写

express主要提供了两种方式:app/router.use和app/router.methods;

 可以是 app,也可以是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来完成

在这里插入图片描述
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格式(中间件中使用过);

传递参数params和query

在这里插入图片描述

响应数据

end方法

类似于http中的response.end方法,用法是一致的
◼ json方法
json方法中可以传入很多的类型:object、array、string、boolean、number、null等,它们会被转换成
json格式返回;
◼ status方法
用于设置状态码:

Express的路由

如果我们将所有的代码逻辑都写在app中,那么app会变得越来越复杂:
 一方面完整的Web服务器包含非常多的处理逻辑;
 另一方面有些处理逻辑其实是一个整体,我们应该将它们放在一起:比如对users相关的处理
✓ 获取用户列表;
✓ 获取某一个用户信息;
✓ 创建一个新的用户;
✓ 删除一个用户;
✓ 更新一个用户;
◼ 我们可以使用 express.Router来创建一个路由处理程序:
 一个Router实例拥有完整的中间件和路由系统;
 因此,它也被称为 迷你应用程序(mini-app);

在这里插入图片描述
静态资源服务器

Node也可以作为静态资源服务器,并且express给我们提供了方便部署静态资源的方法;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值