Como Usar o Axios no Node.js (Com Exemplos de Código)

O Axios é um cliente HTTP baseado em promises que simplifica a realização de requisições HTTP no Node.js. Ele otimiza tarefas como envio de requisições GET e POST, manipulação de respostas e gerenciamento de erros. Neste guia, exploraremos como usar o Axios no Node.js com exemplos práticos de código.
Principais Pontos
- O Axios fornece uma API simples para fazer requisições HTTP no Node.js.
- Utiliza promises para um código assíncrono mais limpo.
- Oferece mecanismos diretos para lidar com diversos cenários de erro.
Configurando o Axios no Node.js
Para começar com o Axios em seu projeto Node.js:
-
Inicialize seu projeto (se ainda não o fez):
npm init -y
-
Instale o Axios:
npm install axios
-
Importe o Axios em sua aplicação:
const axios = require('axios');
Fazendo Requisições GET
Uma requisição GET recupera dados de um endpoint específico. Veja como realizar uma requisição 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('Erro ao buscar dados:', error);
}
}
fetchData();
Explicação:
- Define uma função assíncrona
fetchData
. - Usa
await
para fazer uma requisição GET com Axios. - Registra os dados da resposta no console.
- Trata erros usando
try...catch
.
Fazendo Requisições POST
Uma requisição POST envia dados para um servidor para criar um novo recurso. Veja como realizar uma requisição POST:
const axios = require('axios');
async function createPost() {
try {
const response = await axios.post('https://jsonplaceholder.typicode.com/posts', {
title: 'Nova Postagem',
body: 'Este é o conteúdo da nova postagem.',
userId: 1,
});
console.log('Post criado:', response.data);
} catch (error) {
console.error('Erro ao criar post:', error);
}
}
createPost();
Explicação:
- Define uma função assíncrona
createPost
. - Usa
await
comaxios.post()
, passando o endpoint e o objeto de dados. - Registra o post recém-criado.
- Trata erros adequadamente.
Manipulando Respostas e Erros
O Axios fornece uma maneira estruturada de lidar com respostas e erros. O objeto de resposta inclui propriedades como data
, status
e headers
.
Veja como lidar com diferentes tipos de erros:
const axios = require('axios');
async function fetchData() {
try {
const response = await axios.get('https://jsonplaceholder.typicode.com/posts/1');
console.log('Dados:', response.data);
console.log('Status:', response.status);
} catch (error) {
if (error.response) {
// Servidor respondeu com código de status fora do intervalo 2xx
console.error('Dados do erro:', error.response.data);
console.error('Status do erro:', error.response.status);
} else if (error.request) {
// Nenhuma resposta recebida
console.error('Nenhuma resposta recebida:', error.request);
} else {
// Erro na configuração da requisição
console.error('Erro:', error.message);
}
}
}
fetchData();
Explicação:
- Registra dados e status da resposta quando bem-sucedida.
- Diferencia entre:
- Erros com respostas (
error.response
) - Erros sem resposta (
error.request
) - Outros erros relacionados ao Axios (
error.message
)
- Erros com respostas (
Perguntas Frequentes
Sim, o Axios é isomórfico e pode ser executado em ambos os ambientes.
O Axios transforma automaticamente dados JSON tanto para requisições quanto para respostas, eliminando a necessidade de análise manual.
Sim, você pode definir cabeçalhos personalizados passando um objeto `headers` na configuração da requisição.
Conclusão
O Axios simplifica requisições HTTP no Node.js, oferecendo uma API limpa e concisa. Seu suporte a promises permite um tratamento eficiente de operações assíncronas. Ao compreender como realizar requisições GET e POST e manipular respostas e erros, você pode integrar efetivamente o Axios em suas aplicações Node.js.