在Node.js中发出HTTP请求的 5 种方法

 更新时间:2023年11月19日 10:30:18   作者:dralexsanderl  
学习如何在 Node.js 中发出 HTTP 请求可能会让人感到不知所措,因为有数十个可用的库,每个解决方案都声称比上一个更高效,在这篇文章中,我们将探讨在 Node.js 中发出 HTTP 请求的五种最流行的方法,并为每种方法提供说明,需要的朋友可以参考下

在Node.js中发出HTTP请求的5种方法

学习如何在 Node.js 中发出 HTTP 请求可能会让人感到不知所措,因为有数十个可用的库,每个解决方案都声称比上一个更高效。一些库提供跨平台支持,而另一些库则关注捆绑包大小或开发人员体验。

在这篇文章中,我们将探讨在 Node.js 中发出 HTTP 请求的五种最流行的方法,并为每种方法提供说明。

首先,我们将介绍使用标准库的 HTTP 请求和 HTTPS 请求。之后,我们将展示如何使用 node-fetchAxios 和 superagent 等替代方案。

先决条件

在开始之前,请确保我们的开发环境具备以下条件:

  • Node.js
  • 节点包管理器 (NPM)

下面,我们将展示如何通过以下五种方法在 Node.js 中发出 HTTP 请求:

  • 标准库(HTTP 模块)
  • 标准库(HTTPS 模块)
  • Axios
  • node-fetch
  • superagent

标准库(HTTP模块)

Node.js 中的标准库配备了默认http模块。它可以发出 HTTP 请求,而无需添加大量外部包。然而,由于该模块是低级别的,因此它可能对开发人员更加友好。

此外,我们需要使用异步流来对数据进行分块,因为 HTTP 请求的async/await功能不能与此库一起使用。然后需要手动解析响应数据。

通常,我们会使用 HTTP 模块进行测试或演示,因为它不安全。

这是使用http模块发出get请求的简单示例:

const http = require('http');
const options = {
  hostname: 'example.com',
  port: 80,
  path: '/',
  method: 'GET',
};
const req = http.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => {
    data += chunk;
  });
  res.on('end', () => {
    console.log(data);
  });
});
req.end();

标准库(HTTPS模块)

如果我们需要在 Node.js 中发出安全的 HTTPS 请求,您可以使用该https模块,该模块也内置于标准库中。用法与http模块非常相似,但增加了安全性。这是一个例子:

const https = require('https');
const options = {
  hostname: 'example.com',
  port: 443,
  path: '/',
  method: 'GET',
};
const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => {
    data += chunk;
  });
  res.on('end', () => {
    console.log(data);
  });
});
req.end();

Axios

Axios是一个流行的 Node.js HTTP 客户端库,它提供了一种更加用户友好且功能丰富的方式来发出 HTTP 请求。Axios 简化了错误处理并支持自动 JSON 解析和请求/响应拦截器等功能,使其成为许多 HTTP 请求场景的绝佳选择。

在终端中输入以下命令使用 npm 安装 Axios

npm install axios

node-fetch

node-fetch是专为 Node.js 定制的 JavaScript 库,可简化 HTTP 请求的生成。它提供了一种简单且基于 Promise 的方法,用于从 Internet 或服务器获取资源,例如 GET、POST、PUT 和 DELETE 请求。它专为服务器端应用程序而设计,与 Fetch API 兼容,允许在客户端和服务器端环境之间轻松进行代码转换。

此外,请注意,有用的扩展(例如重定向限制、响应大小限制和用于故障排除的显式错误)可与 node-fetch 一起使用。

在终端中输入以下命令使用 npm 安装node-fetch

npm install node-fetch

以下代码片段展示了如何使用 node-fetch 发出请求:

const fetch = require('node-fetch');
fetch('https://example.com')
  .then((response) => response.text())
  .then((data) => {
    console.log(data);
  })
  .catch((error) => {
    console.error(error);
  });

superagent

superagent是一个轻量级且灵活的 HTTP 客户端,支持 Promise 和回调式语法。它以其简单性和易用性而闻名。

在终端中输入以下命令使用 npm 安装 superagent

npm install superagent

以下代码片段展示了如何使用 superagent 发出请求:

const request = require('superagent');
request.get('https://example.com')
  .then((response) => {
    console.log(response.text);
  })
  .catch((error) => {
    console.error(error);
  });

以上就是在Node.js中发出HTTP请求的 5 种方法的详细内容,更多关于Node发出HTTP请求的资料请关注脚本之家其它相关文章!

相关文章

  • 实例分析nodejs模块xml2js解析xml过程中遇到的坑

    实例分析nodejs模块xml2js解析xml过程中遇到的坑

    这篇文章主要介绍了实例分析nodejs模块xml2js解析xml过程中遇到的坑,涉及nodejs模块xml2js解析xml过程中parseString方法参数使用技巧,需要的朋友可以参考下
    2017-03-03
  • NodeJs内存占用过高的排查实战记录

    NodeJs内存占用过高的排查实战记录

    这篇文章主要给大家介绍了关于NodeJs内存占用过高的排查实战记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • Node模块化开发实例解析

    Node模块化开发实例解析

    这篇文章主要为大家介绍了Node模块化开发实例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • node.js中的url.format方法使用说明

    node.js中的url.format方法使用说明

    这篇文章主要介绍了node.js中的url.format方法使用说明,本文介绍了url.format的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • Mac下安装node.js及环境配置全过程

    Mac下安装node.js及环境配置全过程

    这篇文章主要介绍了Mac下安装node.js及环境配置全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Node.js dgram模块实现UDP通信示例代码

    Node.js dgram模块实现UDP通信示例代码

    这篇文章主要介绍了Node.js dgram模块实现UDP通信示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 使用node.js对音视频文件加密的实例代码

    使用node.js对音视频文件加密的实例代码

    本文通过实例代码给大家介绍了使用node.js对音视频文件加密的方法,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-08-08
  • node实现分片下载的示例代码

    node实现分片下载的示例代码

    这篇文章主要介绍了node实现分片下载的示例代码,使用场景包括基于浏览器的流文件片段传输、基于客户端的分片下载等。感兴趣的小伙伴们可以参考一下
    2018-10-10
  • Node.js学习教程之HTTP/2服务器推送【译】

    Node.js学习教程之HTTP/2服务器推送【译】

    这篇文章主要给大家介绍了关于Node.js学习教程之HTTP/2服务器推送的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10
  • Nodejs 发送Post请求功能(发短信验证码例子)

    Nodejs 发送Post请求功能(发短信验证码例子)

    这篇文章主要介绍了Nodejs 发送Post请求功能(发短信验证码例子),需要的朋友可以参考下
    2017-02-02

最新评论