Express框架快速使用

一、简介

Express框架是基于node平台的web应用开发框架,提供了一系列强大的特性,帮助创建各种web应用。使用npm install express 下载。是企业事实上的web开发标准。

二、框架特性

1.提供方便简洁的路由定义方式

2.简化处理http请求参数(不需要对参数格式进行转化类型,直接就是对象类型;不需要添加deta事件和end事件,直接作为请求对象属性出现)

3.对模板引擎支持程度高,方便渲染html页面

4.提供中间件机制,有效控制http请求

5.拥有大量第三方中间件对功能进行扩展

三、框架入门体验

1.建立目录express

2.在终端使用npm install express下载框架

Express框架快速使用_第1张图片

四、中间件

1.什么是中间件

中间件就是一堆方法,可以接收客户端发来的请求,对请求作出响应。也可以将请求继续交给下一个中间件继续处理。

中间件方法由Express提供,负责拦截请求。请求处理函数由开发者编写,负责处理请求。

对于同一个请求可以设置多个中间件,对请求进行多次处理。

默认情况下,请求从上到下依次匹配中间件,匹配成功则终止。可以使用next方法将请求控制权交个下一个中间件,直到遇到结束请求的中间件。

2.app.use中间件用法

请求方式有get/post,一般一个请求会选择其中一种方式。但对于同一个请求,需要用到两种请求方式,可以使用app.use中间件,这个方法不区分请求方式,可以直接传入请求处理函数,代表接收所有请求。

app.use第一个参数可以传入请求地址,表示不论什么请求方式,只要是这个请求地址,就接收请求。

Express框架快速使用_第2张图片

参数也可以是一个函数

Express框架快速使用_第3张图片

3.中间件应用

路由保护。访问需要登录的页面时,可以先使用中间件判断用户登录状态,如果未登录则拦截请求,禁止访问。如果登录,直接响应。

网站维护公告。在所有路由的最上面接收所有请求的中间件,直接响应客户端,网站维护中。

自定义404页面。

Express框架快速使用_第4张图片

4.错误处理中间件

程序执行时不可避免会发生错误(如文件读取错误,数据库连接失败等),错误处理中间件是一个集中处理错误的地方。

相比普通中间件,错误处理中间件有4个参数

注意:错误处理中间件只能捕获同步代码错误,异步错误不能直接捕获,需要手动触发错误处理中间件。

当程序出错时,调用next方法,并且将错误信息通过参数的形式传给next方法可以触发错误处理中间件。

Express框架快速使用_第5张图片

5.捕获错误

在node中,异步API的错误信息都是通过回调函数获取的,支持Promise对象的异步API发生错误可以通过catch方法捕获。

try catch 可以捕获异步函数以及其他同步代码在执行过程中发生的错误,但不能捕获其他类型的API发生的错误。

五、Express请求处理

1.模块化路由构建

基础代码

Express框架快速使用_第6张图片

模块构建

把路由统一放在一个目录下

Express框架快速使用_第7张图片Express框架快速使用_第8张图片Express框架快速使用_第9张图片

2.get参数获取

Express框架中使用req.query获取get参数,框架内部会将get参数转为对象并返回

Express框架快速使用_第10张图片Express框架快速使用_第11张图片

3.post请求参数获取

Express中接收post请求参数需要用到node第三方模块body-parser

Express框架快速使用_第12张图片Express框架快速使用_第13张图片

Express框架快速使用_第14张图片Express框架快速使用_第15张图片

4.Express路由参数

这是接收get/post请求参数的另一种方式,易于阅读路由代码,美化请求地址

Express框架快速使用_第16张图片Express框架快速使用_第17张图片

6.静态资源处理

express内置express.static方便托管静态文件,如html、css、js文件等

7.模板引擎

为了方便在express框架中更好的使用art-template模板引擎,官方封装了express-art-template

使用npm install art-template express-art-template 命令进行安装

Express框架快速使用_第18张图片

六、express-art-template模板引擎

app.locals对象

将变量设置在app.locals对象下,所有模板都可以获取这个数据

Express框架快速使用_第19张图片

 

你可能感兴趣的:(Node)