概述:
内置中间件、第三方中间件、自定义中间件(全局、局部)。app.use使用中间件时,参数有两个,第一个是路径(如果是根路径可以省略),第二个是个回调函数
自定义全局中间件:
app.use('/',(req,res,next)=>{
let token = req.query.token
if(token){
next()
}else{
res.send('no token')
}
})
自定义局部中间件:
//在定义接口时,这三个参数中,中间的回调函数是定义局部中间件的地方,可以写多个回调函数在中间,需要next(),才会执行后面的回调
app.get('/test',(req,res,next)=>{},(req,res)=>{})
static内置中间件:
const express = require('express')
const path = require('path')
const app = express()
//express.static()里面需要传一个绝对路径,用path.join拼接一个绝对路径
//相当于省略了第一个参数'/'
app.use(express.static(path.join(__dirname,'./public')))
//此时访问静态资源地址为localhost:3000/xxx.html
//如果加上第一个参数,如下
app.use('/public',express.static(path.join(__dirname,'./public')))
//此时的访问路径为localhost:3000/public/xxx.html