express
我所理解的中间件就是在请求打过来的过程中,对请求或者请求内容(req.body、req.query)做一些特殊处理。并且,中间件一定是函数。
比如,body-parser,会特殊处理post请求,使得express支持post请求
比如,Check.checkToken请求,会对打过来的请求的请求头进行token校验,如果存在token,就放行,否则返回 “你没有权限”
nest
在app.module中配置
export class AppModule {
configure(consumer: MiddlewareConsumer) {
// 为 hello 路由添加中间件
consumer
.apply(LoggerMiddleware)
.forRoutes('hello');
}
}
这里的LoggerMiddleware就是中间件,内容如下:
import { Injectable, NestMiddleware } from '@nestjs/common';
import { Request, Response } from 'express';
@Injectable()
export class LoggerMiddleware implements NestMiddleware {
use(req: Request, res: Response, next: () => void) {
const { method, path } = req;
console.log(`${method} ${path}`);
next();
}
}
继承了NestMiddleware这个接口(implements 在ts中是继承接口的意思,继承接口中定义的所有属性与方法),最后nest一下。
本文探讨了Express中间件的概念,它是在请求处理过程中用于操作请求或响应的特殊函数,例如body-parser用于处理POST请求,Check.checkToken则用于进行token验证。接着,介绍了Nest框架中的中间件配置,通过在app.module中设置,如LoggerMiddleware,该中间件通过实现NestMiddleware接口并进行nest处理。
1352

被折叠的 条评论
为什么被折叠?



