安装什么的,我在这儿就不多讲了,相信能找到我博客的,说明你对express也有一定的了解了。不多说,我就直接主题吧。
express日常使用
中间件的使用
其实,跟多数的开发语言的中间件是一样的道理。在请求某个接口的时候先执行他,这就是中间件的原理。
路由中间件
//中间件的方法
var jwt = require('jsonwebtoken');
const checkAccessToken = (req, res, next) => {
//console.log(req.get('Connection'), '请求头')
debugger;
const loginToken = 'loginToken' //用于加密
let token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhIjoxLCJiIjoyLCJpYXQiOjE2OTQ2NzcyMDgsImV4cCI6MTY5NDY3NzIxOH0.8kyiWkPT8osZFTWmUbBTvFIVccyqCy26iY4rMqX6Pmk'
try {
jwt.verify(token, loginToken)
next();
} catch (error) {
res.status(500);
res.send({
code: 500, 'msg': 'token过期' })
next();
}
}
//在路由中使用中间件
router.get('/login/loginActive', checkAccessToken, LoginController.loginActive)
//当然,如果路由中需要执行多个中间件,我们可以像下面这样子写
router.get('/login/loginActive', [checkAccessToken , abc,def,ghi], LoginController.loginActive)//abc , def , ghi 为中间件的方法名字
全局中间件
全局中间件跟路由中间件没太大的区别,定义中间件是一样的,只是在配置生效的时候有些不一样
const testCheck = (req, res, next) => {
console.log('全局中间件')
next();
}
router.use(testCheck) //全局中间件
router.get('/login', LoginController.login) //路由
router.get('/user/getList', UserController.getUserList) //路由
router.get('/login/loginActive', LoginController.loginActive) //路由
//这样,在进料入每一个路由的时候都会先走 testCheck 这个中间件的方法
//需要注意的时,全局中间件的配置的时候,一定要在路由前面。不然,不会生效
获取请求头
在node中,获取请求头,我们只需要像下面的代码
router.get('/login/loginActive', checkAccessToken, (req,res)=>{
let Cookie = req.