<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## HTTP 模塊 [Axios](https://github.com/axios/axios) 是功能很豐富的 `HTTP` 客戶端, 廣泛應用于許多應用程序中。這就是為什么 `Nest` 包裝這個包, 并以內置模塊 `HttpModule` 的形式暴露它。`HttpModule` 導出 `HttpService`, 它只是暴露了基于 Axios 的方法來執行 HTTP 請求, 而且還將返回類型轉換為 `Observables`。 >你也可以直接使用包括 [got](https://github.com/sindresorhus/got) 或 [undici](https://github.com/nodejs/undici) 在內的任何通用的 Node.js 的 HTTP 客戶端。 ### 安裝 我們先安裝需要的依賴來開始使用它 ```shell $ npm i --save @nestjs/axios ``` ### 開始使用 安裝完成之后,想要使用 `HttpService` ,我們需要導入 `HttpModule` 。 ```typescript @Module({ imports: [HttpModule], providers: [CatsService], }) export class CatsModule {} ``` 接下來,使用構造函數來注入 `HttpService`。 > `HttpModule` 和 `HttpService` 是 `@nestjs/axios` 包提供的 ```typescript @Injectable() export class CatsService { constructor(private readonly httpService: HttpService) {} findAll(): Observable<AxiosResponse<Cat[]>> { return this.httpService.get('http://localhost:3000/cats'); } } ``` > `AxiosResponse` 是 `axios` 包( `$ npm i axios` )暴露的接口。 所有 `HttpService` 的方法都返回一個包裹在 `Observable` 對象內的 `AxiosResponse` 。 ### 配置 [Axios](https://github.com/axios/axios) 提供了許多選項,您可以利用這些選項來增加您的 `HttpService` 功能。[在這里](https://github.com/axios/axios#request-config)閱讀更多相關信息。要配置底層的 Axios 實例,請使用 `HttpModule` 的 `register()` 方法。所有這些屬性都將直接傳遞給底層的 Axios 構造函數。 ```typescript @Module({ imports: [ HttpModule.register({ timeout: 5000, maxRedirects: 5, }), ], providers: [CatsService], }) export class CatsModule {} ``` ### 異步配置 如果你要給模塊異步地傳遞選項,就使用 `registerAsync()` 方法。就像大多數動態模塊一樣, Nest 提供了幾種處理異步數據的方法。 一種方法是使用工廠函數: ```typescript HttpModule.registerAsync({ useFactory: () => ({ timeout: 5000, maxRedirects: 5, }), }); ``` 就像其他工廠提供者一樣,我們的工廠函數可以是[異步](https://docs.nestjs.com/fundamentals/custom-providers#factory-providers-usefactory)的而且可以通過 `inject` 參數注入依賴。 ```typescript HttpModule.registerAsync({ imports: [ConfigModule], useFactory: async (configService: ConfigService) => ({ timeout: configService.getString('HTTP_TIMEOUT'), maxRedirects: configService.getString('HTTP_MAX_REDIRECTS'), }), inject: [ConfigService], }); ``` 或者,你可以使用類而不是工廠來配置 `HttpModule` ,如下面所示。 ```typescript HttpModule.registerAsync({ useClass: HttpConfigService, }); ``` 上面的構造將在 `HttpModule` 中實例化 `HttpConfigService`,并利用它來創建一個選項對象。注意這個例子, `HttpConfigService` 必須和下面所示的一樣實現 `HttpModuleOptionsFactory` 接口。 `HttpModule` 會調用被提供的類的實例上的 `createHttpOptions()` 方法。 ```typescript @Injectable() class HttpConfigService implements HttpModuleOptionsFactory { createHttpOptions(): HttpModuleOptions { return { timeout: 5000, maxRedirects: 5, }; } } ``` 如果你想要重復使用一個已經存在的選項提供者而不是在 `HttpModule` 內創建一個私有的拷貝,使用 `useExisting` 語法。 ```typescript HttpModule.registerAsync({ imports: [ConfigModule], useExisting: ConfigService, }); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看