在书写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
终于完成了中间件的全局使用!