npm 包 @adobe/helix-fetch 使用教程

阅读时长 6 分钟读完

简介

@adobe/helix-fetch 是一个由 Adobe 公司开发的 Node.js 包,它可以方便地完成 HTTP 请求,并自动处理 JSON、URL 编码等类型的数据,同时支持重试、缓存、超时等功能。在前端开发中,我们经常需要与后端服务器进行数据交互,使用 @adobe/helix-fetch 可以显著提高开发效率和代码可读性。

安装

在项目中安装 @adobe/helix-fetch,可以使用 npm 或 yarn 工具:

快速开始

使用 @adobe/helix-fetch 发起 HTTP 请求非常简单。以下是一个基本的示例,向 GitHub API 发起一个 GET 请求,获取用户信息:

需要注意的是,在 Node.js 中,使用 fetch 不需要导入异步模块,因为 Node.js 自带的实现已经支持异步请求了。

API

fetch(url[, options])

  • url <string> 请求地址
  • options <object> 可选项,包括请求方法、请求头、请求体等信息

返回值为 Promise 对象,如果请求成功,则返回一个 Response 对象;如果请求失败,则会抛出一个错误。Response 对象包括以下属性:

  • ok <boolean> 表示请求是否成功
  • status <number> HTTP 状态码
  • statusText <string> HTTP 状态码描述
  • headers <Headers> 响应头
  • body <Readable> 响应体数据流,需要手动处理

Response 对象

res.ok <boolean>

表示请求是否成功。如果 res.status200-299 之间,则返回 true;否则返回 false

res.status <number>

包括 HTTP 响应状态码。根据不同的事件结果,其值不同。

res.statusText <string>

表示 HTTP 状态码相关的具体描述。

res.headers <Headers>

表示响应头的 Headers 对象。可以通过以下方法获取:

  • get(name) 返回指定名字的响应头
  • has(name) 检查是否包含指定的响应头
  • forEach(callback, thisArg) 遍历响应头,调用 callback 函数

res.clone()

返回一个 Response 对象的拷贝,拷贝的对象与原来的对象相同。

res.arrayBuffer()

返回响应数据的 ArrayBuffer 对象。

res.blob()

返回响应数据的 Blob 对象。

res.formData()

返回响应数据的 FormData 对象。

res.json()

返回响应数据的 JSON 表示,也就是将响应数据进行 JSON 解析。

res.text()

返回响应数据的字符串表示。

options 可选项

options 支持的选项包括:

method <string>

HTTP 请求的方法,默认值为 GET。可以是:GET、POST、PUT、DELETE 等。

headers <object>

HTTP 请求的头部信息,使用对象进行指定。

body <string> | <Buffer> | <Buffer[]> | <Readable>

HTTP 请求的主体,可以是字符串、Buffer、Buffer 数组或一个可读数据流。如果是字符串,则会自动进行 URL 编码,并自动设置 Content-Type 头部为 text/plain;如果是 Buffer 或 Buffer 数组,则自动设置 Content-Type 为 application/octet-stream。如果是可读数据流,则需要手动设置 Content-Type。

mode <string>

Request 对象的 mode 属性,可以是 cors、no-cors、same-origin 之一。

cache <string>

Request 对象的 cache 属性,用于指定缓存处理方式。可以是 default、no-store、reload、no-cache、force-cache、only-if-cached 之一。

redirect <string>

Request 对象的 redirect 属性,可以是 follow、error、manual 之一。默认为 follow。

referrer <string>

Request 对象的 referrer 属性,用于指定请求来源。

referrerPolicy <string>

Request 对象的 referrerPolicy 属性,用于指定请求来源的策略。

integrity <string>

Request 对象的 integrity 属性,用于指定文件的完整性校验值。

signal <AbortSignal>

AbortSignal 对象,用于指定中止请求的信号对象。

window <any>

可选,用于指定全局对象。

示例

以下是一个使用 @adobe/helix-fetch 发送 POST 请求的示例:

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

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

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

总结

@adobe/helix-fetch 为我们在前端开发中提供了一种轻便、快捷、功能强大的 HTTP 请求方式,支持丰富的可选项和几乎所有的 HTTP 方法。不仅如此,它还会自动地处理 URL 编码、JSON 解析等复杂的操作,提高了代码的可读性和可维护性。因此,它是一个非常值得学习和使用的 npm 包。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedaca1b5cbfe1ea0610aa2

纠错
反馈