Cómo hacer una solicitud GET en Node.js: Una guía para principiantes

Aprende a hacer peticiones GET en Node.js con el módulo http y axios. Aprende a manejar datos de respuesta en varios formatos.

Daniel Costa

Daniel Costa

15 April 2025

Cómo hacer una solicitud GET en Node.js: Una guía para principiantes

¿Quieres aprender a realizar peticiones GET en Node.js? Si es así, estás en el lugar correcto. En esta entrada de blog, te mostraré cómo usar el módulo http integrado y la popular librería axios para realizar peticiones GET en Node.js. También explicaré qué son las peticiones GET, por qué son importantes y cómo manejar los datos de respuesta. Al final de esta publicación, podrás realizar peticiones GET en Node.js como un profesional.

¿Qué es una petición GET?

Una petición GET es uno de los tipos más comunes de peticiones HTTP. HTTP significa Protocolo de Transferencia de Hipertexto, que es el protocolo estándar para la comunicación entre navegadores web y servidores web. Las peticiones HTTP son mensajes que los navegadores web envían a los servidores web para solicitar o enviar datos. Las respuestas HTTP son mensajes que los servidores web envían de vuelta a los navegadores web para entregar los datos solicitados o confirmar el envío.

Una petición GET es un tipo de petición HTTP que le pide al servidor web que envíe un recurso específico. Por ejemplo, cuando escribes una URL en tu navegador web, estás haciendo una petición GET al servidor web para que te envíe la página web asociada con esa URL. Una petición GET también puede incluir algunos parámetros de consulta, que son pares clave-valor que proporcionan información adicional o filtran el recurso solicitado. Por ejemplo, cuando buscas algo en Google, estás haciendo una petición GET al servidor web de Google con algunos parámetros de consulta que especifican tu término de búsqueda, idioma y otras opciones.

¿Por qué son importantes las peticiones GET?

Las peticiones GET son importantes porque son la forma principal de recuperar datos de los servidores web. Puedes usar peticiones GET para acceder a varios tipos de datos, como HTML, JSON, XML, imágenes, vídeos y más. También puedes usar peticiones GET para interactuar con las APIs web, que son interfaces que te permiten acceder a datos y servicios de otras aplicaciones web. Por ejemplo, puedes usar peticiones GET para obtener información meteorológica de la API de OpenWeatherMap, obtener información de películas de la API de IMDb u obtener imágenes de perros de la API de Dog.

Las peticiones GET también son importantes porque son fáciles de usar y probar. Puedes realizar peticiones GET usando cualquier navegador web, sin herramientas o librerías especiales. También puedes usar herramientas como Postman o Apidog para realizar y probar peticiones GET con diferentes parámetros y encabezados. También puedes inspeccionar los datos de respuesta y los encabezados usando las herramientas de desarrollador del navegador o la interfaz de la herramienta.

¿Qué es NodeJs?

Node.js es un entorno de ejecución de JavaScript que te permite ejecutar código JavaScript fuera de un navegador web. Node.js se basa en el motor de JavaScript V8 de Google Chrome y se utiliza para construir aplicaciones web, especialmente aquellas que requieren un uso intensivo de datos y en tiempo real. Node.js también tiene una gran biblioteca de módulos y paquetes que puedes usar para agregar funcionalidad a tus proyectos. Algunos de los beneficios de Node.js son:

NodeJs Website

¿Cómo realizar una petición GET en Node.js usando el módulo http?

Node.js es un entorno de ejecución de JavaScript que te permite ejecutar código JavaScript fuera del navegador web. Node.js se usa a menudo para crear servidores web, aplicaciones web y APIs web. Node.js también proporciona un módulo http integrado que te permite realizar peticiones y respuestas HTTP.

Para realizar una petición GET en Node.js usando el módulo http, debes seguir estos pasos:

  1. Importa el módulo http usando la función require.
  2. Crea un objeto options que contenga la información sobre la petición GET, como el nombre de host, el puerto, la ruta y los encabezados.
  3. Usa el método http.get para realizar la petición GET, pasando el objeto options como el primer argumento y una función de callback como el segundo argumento. La función de callback se ejecutará cuando se reciba la respuesta y tendrá un objeto response como su parámetro.
  4. Usa el objeto response para manejar los datos de respuesta y los encabezados. El objeto response es una instancia de la clase http.IncomingMessage, que implementa la interfaz ReadableStream. Esto significa que puedes usar el objeto response como un flujo de datos y escuchar eventos como data, end y error. También puedes usar la propiedad response.statusCode para obtener el código de estado de la respuesta y la propiedad response.headers para obtener los encabezados de la respuesta.
  5. Usa el método response.on para registrar listeners de eventos para el objeto response. Por ejemplo, puedes usar el método response.on('data', callback) para escuchar el evento data, que se emitirá cuando se reciba un fragmento de datos. La función de callback tendrá un objeto chunk como su parámetro, que es un buffer de datos. Puedes usar el método chunk.toString() para convertir el buffer a una cadena y adjuntarlo a una variable para almacenar todos los datos de respuesta. También puedes usar el método response.on('end', callback) para escuchar el evento end, que se emitirá cuando la respuesta esté completa. La función de callback no tendrá ningún parámetro y puedes usarla para realizar cualquier acción final, como registrar o analizar los datos de respuesta. También puedes usar el método response.on('error', callback) para escuchar el evento error, que se emitirá cuando ocurra un error durante la respuesta. La función de callback tendrá un objeto error como su parámetro y puedes usarlo para manejar el error, como registrarlo o lanzarlo.

Aquí tienes un ejemplo de cómo realizar una petición GET en Node.js usando el módulo http:

// Importa el módulo http
const http = require('http');

// Crea un objeto options
const options = {
  hostname: 'api.openweathermap.org',
  port: 80,
  path: '/data/2.5/weather?q=Los%20Angeles&appid=YOUR_API_KEY',
  headers: {
    'User-Agent': 'Node.js'
  }
};

// Realiza la petición GET
http.get(options, (response) => {
  // Inicializa una variable para almacenar los datos de respuesta
  let data = '';

  // Escucha el evento data
  response.on('data', (chunk) => {
    // Adjunta el fragmento a la variable data
    data += chunk.toString();
  });

  // Escucha el evento end
  response.on('end', () => {
    // Registra el código de estado y los encabezados
    console.log(`Status code: ${response.statusCode}`);
    console.log(`Headers: ${JSON.stringify(response.headers)}`);

    // Analiza los datos como JSON
    const weather = JSON.parse(data);

    // Registra la información meteorológica
    console.log(`City: ${weather.name}`);
    console.log(`Temperature: ${weather.main.temp}`);
    console.log(`Description: ${weather.weather[0].description}`);
  });

  // Escucha el evento error
  response.on('error', (error) => {
    // Lanza el error
    throw error;
  });
});

¿Cómo realizar una petición GET en Node.js usando la librería axios?

El módulo http es un módulo de bajo nivel que proporciona funcionalidad básica para realizar peticiones y respuestas HTTP. Sin embargo, si quieres usar un módulo de nivel superior y más fácil de usar, puedes usar la librería axios. Axios es una librería popular y potente que te permite realizar peticiones HTTP y manejar respuestas usando promesas y sintaxis async/await. Axios también admite características como interceptores, transformadores, tiempos de espera, tokens de cancelación y más.

Para realizar una petición GET en Node.js usando la librería axios, debes seguir estos pasos:

  1. Instala la librería axios usando el comando npm: npm install axios.
  2. Importa la librería axios usando la función require.
  3. Usa el método axios.get para realizar la petición GET, pasando la URL del recurso como el primer argumento y un objeto config opcional como el segundo argumento. El objeto config puede contener información sobre la petición GET, como los encabezados, los parámetros, el tiempo de espera y más. El método axios.get devolverá una promesa, que se resolverá en un objeto response o se rechazará en un objeto error.
  4. Usa el método then para manejar la promesa resuelta, pasando una función de callback como el primer argumento. La función de callback tendrá un objeto response como su parámetro, que contiene los datos de respuesta, el estado, los encabezados y más. Puedes usar la propiedad response.data para acceder a los datos de respuesta y la propiedad response.status para acceder al código de estado de la respuesta. También puedes usar el método catch para manejar la promesa rechazada, pasando una función de callback como el primer argumento. La función de callback tendrá un objeto error como su parámetro, que contiene el mensaje de error, el código, la petición y la respuesta. Puedes usar la propiedad error.response para acceder al objeto de respuesta y la propiedad error.request para acceder al objeto de petición.
  5. Alternativamente, puedes usar la sintaxis async/await para realizar la petición GET y manejar la respuesta. Para hacer esto, debes usar la palabra clave async antes de la función que contiene la petición GET y la palabra clave await antes del método axios.get. Esto te permitirá escribir código asíncrono de manera síncrona y asignar el objeto response a una variable. Luego puedes usar el bloque try/catch para manejar cualquier error que pueda ocurrir durante la petición GET.

Aquí tienes un ejemplo de cómo realizar una petición GET en Node.js usando la librería axios:

// Importa la librería axios
const axios = require('axios');

// Realiza la petición GET usando el método then
axios.get('http://api.openweathermap.org/data/2.5/weather?q=Los%20Angeles&appid=YOUR_API_KEY', {
  headers: {
    'User-Agent': 'Node.js'
  }
}).then((response) => {
// Registra el código de estado y los encabezados
  console.log(`Status code: ${response.status}`);
  console.log(`Headers: ${JSON.stringify(response.headers)}`);

  // Registra la información meteorológica
  console.log(`City: ${response.data.name}`);
  console.log(`Temperature: ${response.data.main.temp}`);
  console.log(`Description: ${response.data.weather[0].description}`);
}).catch((error) => {
  // Registra el mensaje de error y el código
  console.log(`Error message: ${error.message}`);
  console.log(`Error code: ${error.code}`);

  // Registra el estado de la respuesta y los datos si están disponibles
  if (error.response) {
    console.log(`Response status: ${error.response.status}`);
    console.log(`Response data: ${JSON.stringify(error.response.data)}`);
  }

  // Registra el método de la petición y la ruta si están disponibles
  if (error.request) {
    console.log(`Request method: ${error.request.method}`);
    console.log(`Request path: ${error.request.path}`);
  }
});

// Realiza la petición GET usando la sintaxis async/await
async function getWeather() {
  try {
    // Espera la petición GET y asigna el objeto de respuesta a una variable
    const response = await axios.get('http://api.openweathermap.org/data/2.5/weather?q=Los%20Angeles&appid=YOUR_API_KEY', {
      headers: {
        'User-Agent': 'Node.js'
      }
    });

    // Registra el código de estado y los encabezados
    console.log(`Status code: ${response.status}`);
    console.log(`Headers: ${JSON.stringify(response.headers)}`);

    // Registra la información meteorológica
    console.log(`City: ${response.data.name}`);
    console.log(`Temperature: ${response.data.main.temp}`);
    console.log(`Description: ${response.data.weather[0].description}`);
  } catch (error) {
    // Registra el mensaje de error y el código
    console.log(`Error message: ${error.message}`);
    console.log(`Error code: ${error.code}`);

    // Registra el estado de la respuesta y los datos si están disponibles
    if (error.response) {
      console.log(`Response status: ${error.response.status}`);
      console.log(`Response data: ${JSON.stringify(error.response.data)}`);
    }

    // Registra el método de la petición y la ruta si están disponibles
    if (error.request) {
      console.log(`Request method: ${error.request.method}`);
      console.log(`Request path: ${error.request.path}`);
    }
  }
}

// Llama a la función getWeather
getWeather();

¿Cómo manejar los datos de respuesta en Node.js?

Una vez que realizas una petición GET en Node.js y recibes la respuesta, es posible que desees hacer algo con los datos de respuesta. Por ejemplo, es posible que desees mostrar los datos en la consola, guardar los datos en un archivo, analizar los datos como JSON o XML, o usar los datos para algún otro propósito.

Dependiendo del tipo y formato de los datos de respuesta, es posible que debas usar diferentes métodos y módulos para manejar los datos. Aquí hay algunos escenarios comunes y cómo manejarlos:

¿Cómo probar la petición HTTP GET de NodeJs usando Apidog?

Para probar la petición HTTP Get usando Apidog, debes seguir estos sencillos pasos:

  1. Abre Apidog y haz clic en el botón "New Request" para crear una nueva petición.
Select new request

2. Selecciona "GET" como el método de la petición.

Select get method

3. Introduce la URL del punto final de la API

Enter the URL op the API

Luego haz clic en el botón "Send" para enviar la petición a la API.

Send the request and analyse the answer

Como puedes ver, Apidog te muestra la URL, los parámetros, los encabezados y el cuerpo de la petición, y el estado, los encabezados y el cuerpo de la respuesta. También puedes ver el tiempo de respuesta, el tamaño y el formato de la petición y la respuesta, y compararlos con diferentes APIs web.

Conclusión

En esta entrada de blog, te he mostrado cómo realizar peticiones GET en Node.js usando el módulo http y la librería axios. También te he mostrado cómo manejar los datos de respuesta en diferentes formatos y escenarios. Espero que hayas aprendido algo útil y hayas disfrutado leyendo esta publicación.

¡Gracias por leer y feliz codificación!

Explore more

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Aprende a crear cualquier web con Lovable en esta guía completa. Descubre procesos paso a paso, funciones innovadoras e integra herramientas gratuitas como Apidog para gestión API.

15 April 2025

Cómo usar n8n con servidores MCP

Cómo usar n8n con servidores MCP

Automatiza flujos con n8n y servidores MCP para IA. Guía técnica: configuración, APIs, nodo "MCP Server Trigger" y Apidog para pruebas.

14 April 2025

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Este tutorial te guiará para configurar y gestionar claves API personalizadas en Cursor (OpenAI, Anthropic, Google y Azure).

11 April 2025

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs