【问题标题】:NestJS: Logging the request/response from HttpService calls?NestJS:记录来自 HttpService 调用的请求/响应?
【发布时间】:2019-08-21 04:57:52
【问题描述】:

我想知道是否可以使用来自HttpModuleHttpService 记录请求、响应和错误。

我以前用过AXIOS的拦截器,HttpService包裹了axios但是这里好像不能加拦截器,里面好像没有位置

HttpModule.register(...)

然后我认为 NestJS 自带拦截器,想知道是否可以使用 NestJS 拦截器。

我不想将拦截器应用于控制器、服务,而是将其应用于HttpService

任何想法,有点迷失如何以nestjs方式做到这一点。

提前致谢

【问题讨论】:

    标签: javascript node.js typescript axios nestjs


    【解决方案1】:

    HttpService 直接通过get axiosRef() 公开其axios 实例。有了它,你可以添加一个axios interceptor

    this.httpService.axiosRef.interceptors.request.use(config => console.log(config));
    

    例如,您可以在AppModuleonModuleInit() 中执行此操作。

    【讨论】:

    • 谢谢!这让我可以继续使用我原来的拦截器,出于兴趣,我是否在这里重新发明轮子 :-) 我的意思是,是否可以使用 nestjs 拦截器来做同样的工作 - 或者最好坚持使用 AXIO 拦截器。跨度>
    • 不可能在控制器上下文之外使用嵌套拦截器,至少我不知道如何。 ?
    • 所以我认为坚持使用 axios 拦截器是您最好的选择。或者,您也可以为进行日志记录的HttpService 构建一个外观。但在我看来,使用拦截器更干净
    • 感谢您的帮助。
    • @Kim Kern 是否可以从传入请求中读取 cookie 到控制器并将其传递给拦截器以将其添加到 axios 请求的标头中?
    猜你喜欢
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 2022-01-25
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    相关资源
    最近更新 更多