Nestjs middleware 全局使用问题

2019-10-14 11:20:09 浏览数 (1)

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

于是我们查阅官方文档:

官方文档.png

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

其代码如下图所示:

中间件代码.png

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

全局use.png

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

报错.png

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

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

express文档.png

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

修改过后的代码.png

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

最终打印了req.png

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

0 人点赞