NestJS:记录来自 HttpService 调用的请求/响应?
Posted
技术标签:
【中文标题】NestJS:记录来自 HttpService 调用的请求/响应?【英文标题】:NestJS: Logging the request/response from HttpService calls? 【发布时间】:2019-08-21 04:57:52 【问题描述】:我想知道是否可以使用来自HttpModule
的HttpService
记录请求、响应和错误。
我以前用过AXios的拦截器,HttpService
包裹了axios但是这里好像不能加拦截器,里面好像没有位置
HttpModule.register(...)
然后我认为 NestJS 自带拦截器,想知道是否可以使用 NestJS 拦截器。
我不想将拦截器应用于控制器、服务,而是将其应用于HttpService
?
任何想法,有点迷失如何以nestjs方式做到这一点。
提前致谢
【问题讨论】:
【参考方案1】:HttpService
直接通过get axiosRef()
公开其axios
实例。有了它,你可以添加一个axios interceptor
:
this.httpService.axiosRef.interceptors.request.use(config => console.log(config));
例如,您可以在AppModule
的onModuleInit()
中执行此操作。
【讨论】:
谢谢!这让我可以继续使用我原来的拦截器,出于兴趣,我是否在这里重新发明*** :-) 我的意思是,是否可以使用 nestjs 拦截器来做同样的工作 - 或者最好坚持使用 AXIO 拦截器。跨度> 不可能在控制器上下文之外使用嵌套拦截器,至少我不知道如何。 ? 所以我认为坚持使用 axios 拦截器是您最好的选择。或者,您也可以为进行日志记录的HttpService
构建一个外观。但在我看来,使用拦截器更干净
感谢您的帮助。
@Kim Kern 是否可以从传入请求中读取 cookie 到控制器并将其传递给拦截器以将其添加到 axios 请求的标头中?以上是关于NestJS:记录来自 HttpService 调用的请求/响应?的主要内容,如果未能解决你的问题,请参考以下文章
在 NestJS 中缓存 axios httpService
RxJS:使用 NestJS HttpService 对分页 API 进行并行 http 调用
在 Nest JS 中发出 http 请求时出现 httpService 未定义错误