NPM 包 make-fetch-happen 使用教程

阅读时长 4 分钟读完

在 Web 开发中,我们通常需要使用 Fetch API 来发送网络请求并获取数据。然而,Fetch API 存在一些限制,例如无法自动处理重定向、无法自定义超时、无法缓存响应等。为了解决这些问题,可以使用 npm 包 make-fetch-happen。

什么是 make-fetch-happen?

make-fetch-happen 是一个基于 node-fetch 的封装库,旨在提供更加强大和灵活的 Fetch 特性。它支持以下功能:

  • 自动跟随重定向
  • 自定义超时时间
  • 缓存响应
  • HTTP/2 支持
  • 身份验证支持
  • 更加灵活的请求配置

安装 make-fetch-happen

使用 npm 进行安装:

发送请求

基本用法

以下代码演示了如何使用 make-fetch-happen 发送 GET 请求:

配置选项

make-fetch-happen 提供了许多可配置的选项,以便您根据需求设置请求。以下是一些常用选项:

  • method:HTTP 方法,默认为 GET。
  • headers:请求头对象。
  • body:请求体,仅在 POST、PUT、PATCH 和 DELETE 请求中使用。
  • redirects:重定向次数,默认为 20。
  • follow:是否自动跟随重定向,默认为 true。
  • timeout:超时时间(毫秒),默认为无限制。
  • cacheManager:缓存管理器对象,用于缓存响应。
  • retry:重试次数,默认为 0。

以下代码演示了如何设置一些常用选项:

-- -------------------- ---- -------
----- ----- - -----------------------------

----- ------- - -
    ------- -------
    -------- - --------------- ------------------ --
    ----- ---------------- ------ ------ ----- ------ ------- - ---
    ---------- --
    ------- ------
    -------- -----
    ------------- --- ---------------
    ------ --
--

--------------------------------------------------- --------
    -------------- -- ----------------
    ---------- -- ------------------
    ------------ -- ----------------------

缓存响应

make-fetch-happen 可以将响应缓存到本地磁盘,以便稍后重复使用。这可以减少网络请求并提高性能。以下是一些常用的缓存选项:

  • cachePath:缓存文件路径,默认为 .cache
  • cacheTTL:缓存时间(秒),默认为无限制。
  • cacheKeyGenerator:缓存键生成器函数,用于生成唯一的缓存键。

以下代码演示了如何启用缓存:

-- -------------------- ---- -------
----- ----- - -----------------------------

----- ------- - -
    ---------- ---------
    --------- -- - --- -- -----
    ------------------ ------- -- ----------- - --------------------------------
--

----------------------------------------------------- - ------------- --- -------------- --
    -------------- -- ----------------
    ---------- -- ------------------
    ------------ -- ----------------------

身份验证

make-fetch-happen 支持基本身份验证和 Bearer Token 身份验证。以下是一些常用的身份验证选项:

  • auth:身份验证字符串,例如 username:password
  • bearer:Bearer Token 字符串。

以下代码演示了如何进行身份验证:

纠错
反馈