返回

Node.js `fetch` API 与 `dotenv`:发送 GET 请求详解

javascript

利用 Node.js fetch API 和 dotenv 发出 GET 请求

引言

在 Node.js 中,使用 fetch API 发送 HTTP 请求是一种简单高效的方法。本文将深入探讨如何利用 fetch API 发出 GET 请求,并使用 dotenv.env 文件中读取环境变量。

准备请求

  1. 安装 node-fetch 包:
npm install node-fetch
  1. 导入 fetch 模块:
const fetch = require('node-fetch');
  1. 准备请求选项:

创建一个对象包含请求选项,例如方法、标头和正文:

const options = {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(data),
};

发出 GET 请求

使用 fetch() 函数发出 GET 请求:

fetch(url, options)
  .then(response => {
    // 处理响应
  })
  .catch(error => {
    // 处理错误
  });

处理响应

fetch() 函数返回一个 Promise,在请求完成后解析为响应对象。使用 then() 方法处理响应并提取数据:

fetch(url, options)
  .then(response => response.json())
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error('Error:', error);
  });

使用 dotenv 读取环境变量

  1. 安装 dotenv 包:
npm install dotenv
  1. 导入 dotenv 模块:
require('dotenv').config();
  1. 读取环境变量:

使用 process.env 对象访问环境变量:

const url = process.env.URL_ENV;

示例代码

require('dotenv').config();

const url = process.env.URL_ENV;

fetch(url, {
  method: 'GET',
}).then(response => {
  return response.json();
}).then(data => {
  console.log(data);
}).catch(error => {
  console.error('Error:', error);
});

常见问题解答

  • 为什么我收到 TypeError: Only absolute URLs are supported 错误?

fetch 只支持绝对 URL。确保你的 URL 以协议(如 http://https://)开头。

  • 如何使用 fetch API 发送 POST 请求?

将请求选项中的方法设置为 POST,并提供请求正文。

  • 如何设置请求标头?

在请求选项中添加 headers 属性,并设置标头键值对。

  • 如何处理错误响应?

fetch() 响应 Promise 中处理 catch() 块中的错误。

  • 如何从响应中提取文本数据?

使用 response.text() 方法提取文本数据。

结论

通过结合 fetch API 和 dotenv,你可以轻松地从 Node.js 发出 HTTP GET 请求并读取环境变量。这为你构建强大的服务器端应用程序提供了强大的工具。