Nestjs middleware 全局使用问题

在书写nestjs项目中我们很多情况下希望自己的中间件能够全局使用,比如控制传输加密,以及控制传入信息,来完成全局异常捕获等功能。

于是我们查阅官方文档:

Nestjs middleware 全局使用问题_第1张图片
官方文档.png

但是在使用过程中,例如我们先生成了SafetyMiddleware

其代码如下图所示:


Nestjs middleware 全局使用问题_第2张图片
中间件代码.png

我们按照官方文档,全局use:


Nestjs middleware 全局使用问题_第3张图片
全局use.png

但是我们在使用传输过程中发现这样一个错误:


Nestjs middleware 全局使用问题_第4张图片
报错.png

这个问题纠结我将近一天的时间,“为什么我按照官方文档进行书写代码会报错呢?”

经过几个小时的折腾均没有结果,于是乎我找到nestjs底层express官方文档:

Nestjs middleware 全局使用问题_第5张图片
express文档.png

不难发现,官方文档中use 直接注入的是一个方法。即:function(req,res,next)
那么,在nestjs中的中间件里面是有一个use方法的,正好是这个function,于是我进行了代码上的修改:

Nestjs middleware 全局使用问题_第6张图片
修改过后的代码.png

直接使用中间件的use方法,看看使用效果,是否打印了req:


Nestjs middleware 全局使用问题_第7张图片
最终打印了req.png

终于完成了中间件的全局使用!

官方文档的说明错误,导致我们在使用过程中难以正确的书写代码,这个时候我们只要寻找它的基本最核心的东西,即可举一反三来完成我们代码的书写正确!

你可能感兴趣的:(Nestjs middleware 全局使用问题)