본문 바로가기
개발정리 (nodeJS)

[nodeJS] Axios로 HTTP 요청하기

by 할리갈리0 2023. 6. 16.

1. Axios

HTTP 요청과 응답을 쉽게 만들고 처리할 수 있는 라이브러리

npm install axios

 

2. GET 요청

axios.get() 사용

const axios = require('axios');

// GET 요청
const getUser = async () => {
  try {
    const url = 'get 요청을 해야하는 url'
    const response = await axios.get(url);
    
    // 응답 데이터 출력
    console.log(response.data);
  } catch (error) {
    console.error(error);
  }
};

// 함수 호출
getUser();

 

3. POST 요청

axios.post() 사용

const axios = require('axios');

// POST 요청을 보내는 함수
const postData = async () => {
  const data = {
    title: 'foo',
    body: 'bar',
    userId: 1
  };

  try {
    const url='post 요청을 보낼 url'
    const response = await axios.post(url, data);

    console.log(response.data);
  } catch (error) {
    console.error(error);
  }
};

// 함수 호출
postData();

 

4. Axios 인터셉터

공통 요청 및 응답 처리 작업을 수행하기 위한 메커니즘

모든 요청 또는 응답을 수정하거나 작업을 수행 가능

요청 인터셉터 (request)  : axios 요청이 서버로 전송되기 전에 중간에서 설정 및 작업 할수 있도록 제공해주는 기능

응답 인터셉터 (response) : 서버의 응답을 받고 클라이언트로 반환하기 전에 작업을 처리할 수 있는 기능

// 요청 인터셉터
axios.interceptors.request.use(
  (config) => {
    // 처리할 작업 실행
    config.headers['Content-Type'] = 'application/json';
    return config; // 변경된 설정을 반환하여 요청에 적용
  },
  (error) => {
    console.error('Request Error:', error);
    // 실패한 promise를 반환해 다른 에러 처리로 사용
    return Promise.reject(error);
  }
);
// 응답 인터셉터
axios.interceptors.response.use(
  (response) => {
    // 처리할 작업 실행
    console.log('Response:', response);
    return response; // 변경된 응답을 반환하여 호출자에게 전달
  },
  (error) => {
    console.error('Response Error:', error);
    return Promise.reject(error);
  }
);

인터셉터를 통해 개발자가 원하는 작업을 전역적으로 적용할 수 있으며, 중복되는 작업을 최소화하여 프로젝트를 보다 편리하게 진행할 수 있습니다.

 

반응형