Cómo usar Axios en Node.js (con ejemplos de código)

Axios es un cliente HTTP basado en promesas que simplifica la realización de solicitudes HTTP en Node.js. Agiliza tareas como enviar solicitudes GET y POST, manejar respuestas y gestionar errores. En esta guía, exploraremos cómo usar Axios en Node.js con ejemplos prácticos de código.
Puntos clave
- Axios proporciona una API simple para realizar solicitudes HTTP en Node.js.
- Utiliza promesas para un código asincrónico más limpio.
- Ofrece mecanismos sencillos para manejar diversos escenarios de error.
Configuración de Axios en Node.js
Para comenzar a usar Axios en tu proyecto de Node.js:
-
Inicializa tu proyecto (si aún no lo has hecho):
npm init -y
-
Instala Axios:
npm install axios
-
Requiere Axios en tu aplicación:
const axios = require('axios');
Realizando solicitudes GET
Una solicitud GET recupera datos de un endpoint especificado. Aquí te mostramos cómo realizar una solicitud GET usando Axios:
const axios = require('axios');
async function fetchData() {
try {
const response = await axios.get('https://jsonplaceholder.typicode.com/posts/1');
console.log(response.data);
} catch (error) {
console.error('Error al obtener los datos:', error);
}
}
fetchData();
Explicación:
- Define una función asincrónica
fetchData
. - Utiliza
await
para realizar una solicitud GET con Axios. - Registra los datos de la respuesta en la consola.
- Maneja los errores usando
try...catch
.
Realizando solicitudes POST
Una solicitud POST envía datos a un servidor para crear un nuevo recurso. Aquí te mostramos cómo realizar una solicitud POST:
const axios = require('axios');
async function createPost() {
try {
const response = await axios.post('https://jsonplaceholder.typicode.com/posts', {
title: 'Nuevo Post',
body: 'Este es el contenido del nuevo post.',
userId: 1,
});
console.log('Post creado:', response.data);
} catch (error) {
console.error('Error al crear el post:', error);
}
}
createPost();
Explicación:
- Define una función asincrónica
createPost
. - Utiliza
await
conaxios.post()
, pasando el endpoint y el objeto de datos. - Registra el post recién creado.
- Maneja los errores adecuadamente.
Manejo de respuestas y errores
Axios proporciona una forma estructurada de manejar respuestas y errores. El objeto de respuesta incluye propiedades como data
, status
y headers
.
Aquí te mostramos cómo manejar diferentes tipos de errores:
const axios = require('axios');
async function fetchData() {
try {
const response = await axios.get('https://jsonplaceholder.typicode.com/posts/1');
console.log('Datos:', response.data);
console.log('Estado:', response.status);
} catch (error) {
if (error.response) {
// El servidor respondió con un código de estado fuera de 2xx
console.error('Datos del error:', error.response.data);
console.error('Estado del error:', error.response.status);
} else if (error.request) {
// No se recibió respuesta
console.error('No se recibió respuesta:', error.request);
} else {
// Error al configurar la solicitud
console.error('Error:', error.message);
}
}
}
fetchData();
Explicación:
- Registra los datos y el estado de la respuesta cuando es exitosa.
- Diferencia entre:
- Errores con respuestas (
error.response
) - Errores sin respuesta (
error.request
) - Otros errores relacionados con Axios (
error.message
)
- Errores con respuestas (
Preguntas frecuentes
Sí, Axios es isomórfico y puede ejecutarse en ambos entornos.
Axios transforma automáticamente los datos JSON tanto para solicitudes como para respuestas, eliminando la necesidad de análisis manual.
Sí, puedes establecer encabezados personalizados pasando un objeto `headers` en la configuración de la solicitud.
Conclusión
Axios simplifica las solicitudes HTTP en Node.js, ofreciendo una API limpia y concisa. Su soporte para promesas permite un manejo eficiente de operaciones asincrónicas. Al comprender cómo realizar solicitudes GET y POST y manejar respuestas y errores, puedes integrar Axios de manera efectiva en tus aplicaciones Node.js.