前言
在前端开发中,我们经常需要进行网络请求,用于获取服务器端数据、发送表单数据,带上 Token 、Cookie 等等。HTTP 请求是前后端之间数据交换的常用方式,而 Node.js 提供了一套完整的 http 模块和 https 模块,可以用于发起 HTTP 和 HTTPS 请求,进行服务端开发和爬虫编写。但是这些模块使用方式过于繁琐,需要自己编写各种逻辑代码,对于一些简单的“发起 GET 请求,获取 JSON 数据”的场景,使用 Node.js 原生模块就显得过于麻烦。这时就需要用到第三方库来简化我们的代码工作,而 @hola.org/request 就是这样一款让我们省力省心的 HTTP 请求库。
安装
npm 包 @hola.org/request 可以通过 npm 方式进行安装:
npm install @hola.org/request
使用
@hola.org/request 使用非常简单,无需编写繁琐的请求逻辑代码。下面我将介绍如何使用这个库进行 HTTP 请求。
GET 请求
最常见的 HTTP 请求方式就是 GET 请求,它用于请求指定资源。
-- -------------------- ---- ------- ----- ------- - ----------------------------- ----------------------------------------------------------- -------------- -- - --------------------------- -- ------------ -- - ------------------- ---
代码第一行引入了 @hola.org/request 中的 get 方法,该方法接受一个 URL 参数和可选的请求配置对象。我们可以看到 get 方法返回一个 Promise 对象,在调用 resolve 时,我们可以打印出响应内容(response.body)。
POST 请求
在某些情况下,我们需要使用 POST 方法来向服务器发送数据。
-- -------------------- ---- ------- ----- ------- - ----------------------------- ---------------------------------------------------------- - ----- - ------ ----- ------- ----- ----- ------ ------- - - -- -------------- -- - --------------------------- -- ------------ -- - ------------------- ---
代码中调用了 post 方法,第二个参数则是请求配置对象,包含了需要上传的数据。在本例中,我们上传了一个 JSON 格式数据。当然,除了 JSON,@hola.org/request 还支持 form 表单格式和上传文件等请求。
其他请求
@hola.org/request 不仅支持 GET 和 POST,还支持 PUT、DELETE、PATCH 等多种请求方式。以下是 PUT 请求的示例:
-- -------------------- ---- ------- ----- ------- - ----------------------------- ----------------------------------------------------------- - ----- - ------ ----- ------- ----- ----- ------ ------- - - -- -------------- -- - --------------------------- -- ------------ -- - ------------------- ---
请求发送前的预处理
请求发送前,@hola.org/request 可以对请求参数进行一定的预处理。例如:添加 header、添加 querystring 参数 。
-- -------------------- ---- ------- ----- ------- - ----------------------------- ---------------------------- -- - ----------------------------- - --- ---- ------- ---------- - - --- --- -- ------ -------- --- ----------------------------------------------------------- -------------- -- - --------------------------- -- ------------ -- - ------------------- ---
代码中,我们调用了 preprocess 方法,传入一个回调函数,该函数接收一个请求配置对象,并进行了 headers 和 querystring 的设置。这意味着在后续的请求中,这个预处理逻辑也会一直被执行。
推荐实践
- 抽离出基本的 HTTP 请求函数,利用 preprocess 预处理功能,使得代码更加干净简洁。
-- -------------------- ---- ------- ----- ------- - ----------------------------- ----- ---- - - -------- --- - ------ ---------------- - -- --- -- --------- ----- - ------ ----------------- - ---- --- -- -------- ----- - ------ ---------------- - ---- --- -- ----------- - ------ -------------------- - -- ---------------------------- -- - ----------------------------- - --- ---- ------- ------ -------- --- -------------------------------------------------------- - --- - -- -------------- -- - --------------------------- -------------- -- - ------------------- ---
- 非 2xx 状态码处理
-- -------------------- ---- ------- ----- ------- - ----------------------------- -------------------------------------------------------------------------- -- - -- -------------------- -- --- -- ------------------- - ---- - --------------------------- - ---- - -------------- --- ----- -------------------- --------------- - -------------- -- - ------------------- ---
结语
@hola.org/request 为我们提供了一种简单、高效、易用的 Node.js HTTP 请求解决方案,让我们可以在前端或者服务端快速轻松地进行 HTTP 请求,并且减少了大量繁琐的请求逻辑代码。同时,本文还为大家提供了更多实践经验,相信能够对大家在实际工作和学习过程中有所启发,提高效率和代码质量。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056c5b81e8991b448e5e10