Express.js 中使用 Node-fetch 发送 HTTP 请求

阅读时长 4 分钟读完

在开发 Web 应用时,我们经常需要向其他服务发送 HTTP 请求获取数据。在 Node.js 中,我们可以使用内置的 http 模块来发送 HTTP 请求,但是这个模块的 API 不太友好,而且需要手动处理很多细节。为了简化 HTTP 请求的过程,我们可以使用第三方库 node-fetch,它提供了简洁的 API,可以让我们轻松地发送 HTTP 请求。

本文将介绍如何在 Express.js 中使用 node-fetch 发送 HTTP 请求,并提供示例代码和注意事项。

安装 node-fetch

首先,我们需要在项目中安装 node-fetch。可以使用 npm 或 yarn 安装:

发送 GET 请求

使用 node-fetch 发送 GET 请求非常简单,只需要传入请求的 URL 即可。以下是一个示例:

在上面的代码中,我们使用 fetch 函数发送了一个 GET 请求,请求的 URL 是 https://jsonplaceholder.typicode.com/users。然后,我们使用 await 等待响应,并使用 json 方法将响应体转换为 JSON 对象。最后,我们将 JSON 对象作为响应发送给客户端。

发送 POST 请求

使用 node-fetch 发送 POST 请求也很简单,只需要在 fetch 函数中传入一个配置对象,该对象包含请求方法、请求头和请求体等信息。以下是一个示例:

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

---------------------- ----- ----- ---- -- -
  ----- ---- - -------------------------
  ----- -------- - ----- --------------------------------------------------- -
    ------- -------
    -------- -
      --------------- ------------------
    --
    ----
  ---
  ----- ---- - ----- ----------------
  ---------------
---
展开代码

在上面的代码中,我们使用 fetch 函数发送了一个 POST 请求,请求的 URL 是 https://jsonplaceholder.typicode.com/users。我们将请求体转换为 JSON 字符串,并将其作为 fetch 函数的 body 参数传入。我们还指定了请求方法为 POST,并设置了请求头的 Content-Typeapplication/json。然后,我们使用 await 等待响应,并将响应体转换为 JSON 对象。最后,我们将 JSON 对象作为响应发送给客户端。

注意事项

在使用 node-fetch 发送 HTTP 请求时,需要注意以下事项:

  • node-fetch 返回的是一个 Promise 对象,需要使用 awaitthen 处理响应。
  • 如果请求失败,node-fetch 不会抛出异常,而是返回一个表示失败的响应对象。我们可以通过检查响应的 ok 属性来判断请求是否成功。
  • node-fetch 默认不会跟随重定向,如果需要跟随重定向,需要手动设置 redirect 选项。
  • 如果需要发送的请求体是一个 FormData 对象,需要手动设置请求头的 Content-Typemultipart/form-data

结论

在 Express.js 中使用 node-fetch 发送 HTTP 请求非常方便,可以让我们轻松地获取数据并处理响应。在实际开发中,我们可以根据需要对请求进行定制,以满足不同的需求。

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

纠错
反馈

纠错反馈

程序员教程

精选优质教程,助你快速提升技术实力

程序员面试题库

海量优质面试题,助你轻松应对技术面试