express是基于nodejs的http模块封装好的一个服务器框架
express基本使用:
下载安装: 先下载 npm init 然后在下载express npm i express
导入 : const express=require('express')
创建服务器 : const app=express()
监听端口 : app.listen(端口号)
处理请求
express的处理方法:
express的处理方法常用的有五种:
get: 专门处理get请求
put:专门处理put请求
post: 专门处理post请求
delete:专门处理delete方法
use: 处理任意请求
express的处理路径
restful风格的路径: 针对get请求参数 restful风格的路径 - 跟传统路径只有参数表达方式不同
路径的表示方式 - 协议://用户名:密码@域名:端口号/文件路径?参数#锚点
// 传统方式的参数表达方式 - 路径?键=值&键=值...
// restful风格的参数表达方式 - 路径/值/值...
express 处理函数
多个函数处理: 中间函数必须加next()
多个函数处理一个请求的时候,前面的函数必须加第三个参数,中间函数最后调用next()函数
路由对象处理: 路由对象是express中封装好的一个对象
语法:const router = express.Router()
路由对象处理请求跟定义好的服务器app使用方式是一样的
语法 : app.use('/',router) //use 方法可以跟rotuer进行配合处理请求
express响应方法
resp.json :相当于将数组或对象转成字符串+end
resp.send() :相当于避免乱码的响应头+end
中间件 :一个请求多个函数处理,最后函数之前的函数就叫中间件
从作者不同角度来看,分为三大类:
内置中间件: 用来获取post数据的 ------ 语法: express.urlencoded({extended: false})
自定义中间件:
第三方中间件: 先导入const bodyParser=require('body-parser')
然后调用语法 bodyParser.urlencoded({extended: false})
从使用方式的角度来看 : 分为2大类:
1.应用级别中间件--app使用的中间件
(1)全局应用级别中间件 - 所有请求都会经过的中间件:::::::::::app.use(中间件)
(2)局部应用级别中间件 - 只有这一次请求会经过的中间件::::::::app.get(路径,中间件,处理函数)
2.路由级别中间件 ------ 路由对象使用的中间件
全局 router.use(中间件)
局部 router.get (路径,中间件,处理函数)
404中间件 放在所有请求最后 app.use((req,resp,next)=>{resp.ststus(404).响应内容})
异常处理中间件 放在所有请求最后 app.use((err,req,resp,next)=>{自定义响应内容})