在应用的全局范围可以绑定使用拦截器,在 main.ts 里面,使用 app 上的 UseGlobalInterceptors 方法,把一个拦截器实例交给这个方法就可以了,不过这样做的话就不能在拦截器里注入依赖了,所以可以使用另外一种方法,就是把拦截器用在 app 模块里面。
打开 app.module,在@Module 装饰器的 providers 里面,添加一个项目,这个对象里面先用 provide 属性,它的值是 APP_INTERCEPTOR,下面再用一个 useClass,它的值就是要使用的拦截器,LoggingInterceptor。
打开 posts.controller,去掉用在这个控制器类上的拦截器。
然后在客户端可以配置一个请求,请求一下 posts 地址。
回到控制台可以再检查一下。仍然会在这里输出 I'm a interceptor,这回我们把 Logging 这个拦截器用在 App 模块上了。