
Compartir:
Michael Crump trabaja en Vonage en el equipo de experiencias para desarrolladores y es programador, YouTuber y conferenciante habitual sobre diversos temas de desarrollo de .NET, la nube y las comunicaciones. Le apasiona ayudar a los desarrolladores a comprender las ventajas de cada uno de ellos de una forma sencilla.
5 formas de realizar peticiones HTTP en Node.js
Introducción
Aprender a realizar peticiones HTTP en Node.js puede resultar abrumador, ya que hay docenas de bibliotecas disponibles y cada solución afirma ser más eficiente que la anterior. Algunas bibliotecas ofrecen soporte multiplataforma, mientras que otras se centran en el tamaño del paquete o en la experiencia del desarrollador.
En este post, exploraremos cinco de las formas más populares de realizar peticiones HTTP en Node.js, con instrucciones paso a paso para cada método.
Primero, cubriremos las peticiones HTTP y HTTPS usando la librería estándar. Después, te mostraremos cómo usar alternativas como Node Fetch, Axios y SuperAgent.
Requisitos previos
Antes de empezar, asegúrate de tener lo siguiente:
Cómo realizar peticiones HTTP en Node.js (5 métodos)
A continuación, te mostraremos cómo realizar peticiones HTTP en Node.js a través de los siguientes cinco métodos:
Biblioteca estándar (módulo HTTP)
Biblioteca estándar (módulo HTTPS)
Axios
Nodo Fetch
Superagente
1. Biblioteca estándar (módulo HTTP)
La biblioteca estándar de Node.js viene equipada con el módulo por defecto http por defecto. Puede hacer una petición HTTP sin añadir volumen con paquetes externos. Sin embargo, como el módulo es de bajo nivel, podría ser más amigable para los desarrolladores.
Además, tendría que utilizar flujos asíncronos para agrupar los datos, ya que la función async/await de las peticiones HTTP no se puede utilizar con esta biblioteca. Los datos de respuesta tendrían que ser analizados manualmente.
Normalmente, el módulo HTTP se utiliza para realizar pruebas o demostraciones, ya que no es seguro.
He aquí un ejemplo sencillo de realización de una GET utilizando el módulo http módulo:
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();
2. Biblioteca estándar (módulo HTTPS)
Si necesitas hacer peticiones HTTPS seguras en Node.js, puedes usar el módulo https que también está integrado en la biblioteca estándar. El uso es bastante similar al del módulo http pero con mayor seguridad. Aquí tienes un ejemplo:
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();
3. Axios
Axios es una popular librería cliente HTTP para Node.js que proporciona una forma más fácil de usar y rica en características para realizar peticiones HTTP. Axios simplifica la gestión de errores y admite funciones como el análisis JSON automático y los interceptores de solicitud/respuesta, lo que la convierte en una gran opción para muchos escenarios de solicitud HTTP.
Introduce el siguiente comando en tu terminal para instalar Axios desde npm:
El siguiente fragmento de código muestra cómo utilizar Axios para realizar una GET solicitud:
const axios = require('axios');
axios.get('https://example.com')
.then((response) => {
console.log(response.data);
})
.catch((error) => {
console.error(error);
});
4. Nodo Fetch
Node Fetch es una librería JavaScript adaptada para Node.js que simplifica la realización de peticiones HTTP. Ofrece un enfoque sencillo y basado en promesas para obtener recursos de Internet o del servidor, como solicitudes GET, POST, PUT y DELETE. Diseñado para aplicaciones del lado del servidor, es compatible con la API Fetch, lo que permite una fácil transición de código entre entornos del lado del cliente y del lado del servidor.
Además, tenga en cuenta que extensiones útiles como límite de redireccionamiento, límite de tamaño de respuesta y errores explícitos para la resolución de problemas están disponibles para su uso con Node Fetch.
Introduce el siguiente comando en tu terminal para instalar Node Fetch desde npm:
El siguiente fragmento de código muestra cómo utilizar Node Fetch para realizar una solicitud:
const fetch = require('node-fetch');
fetch('https://example.com')
.then((response) => response.text())
.then((data) => {
console.log(data);
})
.catch((error) => {
console.error(error);
});
5. Superagente
SuperAgent es un cliente HTTP ligero y flexible que soporta promesas y sintaxis de tipo callback. Es conocido por su sencillez y facilidad de uso.
Introduzca el siguiente comando en su terminal para instalar SuperAgent desde npm:
El siguiente fragmento de código muestra cómo utilizar SuperAgent para realizar una solicitud:
const request = require('superagent');
request.get('https://example.com')
.then((response) => {
console.log(response.text);
})
.catch((error) => {
console.error(error);
});
Conclusión
Este post demostró cómo conseguir la funcionalidad de peticiones HTTP usando algunas de las que actualmente se consideran las librerías más populares en Node.js.
Otros lenguajes también tienen una miríada de bibliotecas para hacer frente a las peticiones HTTP. ¿Sobre qué idioma quieres que escribamos a continuación? Háznoslo saber. Nos encantaría conocer tu opinión o responder a tus preguntas en Twitter o en Vonage Slack de la comunidad de desarrolladores de Vonage.
Lecturas complementarias
Compartir:
Michael Crump trabaja en Vonage en el equipo de experiencias para desarrolladores y es programador, YouTuber y conferenciante habitual sobre diversos temas de desarrollo de .NET, la nube y las comunicaciones. Le apasiona ayudar a los desarrolladores a comprender las ventajas de cada uno de ellos de una forma sencilla.