内置中间件

express中内置的中间件 - 中间件本质是一个函数

json

json是处理json请求的,获取参数 req.body

app.use(express.json())

测试json是否成功的步骤

1. 在postman发起请求

2. post请求,需要设置请求头,参数如果是json对象就选择body -json属性是双引号

3. 设置请求头 application/json

4. 在body请求体中设置传递的参数 raw 格式

urlencoded

urlencoded({extend:false}) 处理表单编码格式的参数请求 - form表单提交

app.use(express.urlencoded({extend:false}))

测试urlencoded是否成功的步骤

1. 在postman发起请求

2. post请求,需要设置请求头,如果参数是x-www-form-encoded

3. 设置请求头 application/x-www-form-encoded

4. 在body请求体中设置传递的参数 x-www-form-encoded 格式

自定义中间件

先定义一个中间件的函数

// 实现获取post请求参数的中间件

function 自定义中间件名(req,res,next){

let str = ''

req.on('data' , (chunk)=>{

str +=chunk

})

req.on('end' , ()=>{

let obj = require('querystring').parse(str) //将参数转为对象形式

// 给req设置属性将参数以对象形式放进去

req.postDate = obj

// 继续放行

next()

})

}

使用自定义中间件 - 全局使用 -可以在不同路由中使用

app.use(自定义中间件名)

服务器名.post('接口',(req,res)=>{

res.send('req.postDate') // 这就是请求的参数

})

使用自定义中间件 - 局部使用 -只能在这个路由中使用

服务器名.post('接口', 自定义中间件名, (req,res)=>{

res.send(req.postDate) // 就是参数

})

 第三方中间件 - 都需要下载相关依赖包

body-parser中间件

获取post请求提交的参数

优点:相比较内置的express属性 兼容性好,使用率高

第一步:引入body-parser第三方中间件

const 变量 = require('body-parser')

第二步:全局使用中间件

服务器.use(变量.urlencoded({extend:false}))

第三步获取post参数

req.body

异常处理中间件和404中间件

异常处理中间件

服务器.use((err, req, res, next) => {

// err不为null 说明异常

if (err) {

// 说明出错了执行错误处理程序,这里是重定向到错误页面500

res.redirect('./error500.html')

}

})

404中间件

服务器.use((req, res, next) => {

// 说明没找到页面执行后续程序,这里重定向到404页面

res.redirect('./error404.html')

})

cookie

要先下载引入cookie-parser第三放中间件

const cookieparser = require('cookie-parser')

全局使用这个cookieparser - 有()

服务器.use(cookieparser())

设置cookie

res.cookie('属性名' , 属性值 , { maxAge: 时效性 })   // 单位毫秒

获取cookie

cookie存在于请求头里,是字符串,要转为对象

require('querystring').parse(req.headers.cookie)

bcryptjs加密

加密插件bcryptjs一般是用来给密码加密的

先下载引入bcryptjs

const bcryptjs = require('bcryptjs')

加密

bcryptjs.hashSync(要加密的字符串 , 加密次数)   // 加密次数一般为10

判断密文和明文是否相同

bcryptjs.compareSync(明文,密文)    // 相同 true 不同 false

jwt(jsonwebtoken)加密

jsonwebtoken主要就是生成token以及token验证的

先下载引入jsonwebtoken

const jwt = require('jsonwebtoken')

加密(生成token)

jwt.sign({要加密的对象} ,自定义字符串)

获取token

token在请求头

req.headers.token

token验证

jwt.verify(要验证的token , 上次自定义字符串 , ( err , date )=>{ date 就是解密内容,也就是未加密对象 })

multer文件上传

先下载引入multer

const multer = require('multer')

配置上传文件的地址 - 放在服务器要存储的文件夹下

const upload = multer({ 'dest' : '相对路径' })

post请求

服务器.post('接口' , upload.single('name') , (req,res)=>{

// 给上传的文件加后缀

let path = '存储的文件夹相对地址' + req.file.filename + require('path').extname( req.file.originalname )

// 重命名 - renameSync( 旧路径 , 新路径 )

fs.renameSync('存储的文件夹相对地址/' + req.file.filename , path)

res.send('上传成功')

})

验证码

 下载引入 svg-captcha

const svgCaptcha = require('svg-captcha')

创建验证码

let svg = svgCaptcha.create()

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: