[typescript] Superagent를 이용한 에러 핸들링 방법

Superagent는 Node.js 및 브라우저에서 HTTP 클라이언트 요청을 손쉽게 만들 수 있는 라이브러리입니다. TypeScript에서 Superagent를 사용하여 HTTP 요청을 보내고, 에러를 핸들링하는 방법에 대해 알아보겠습니다.

Superagent 설치하기

먼저, Superagent를 설치해야 합니다. 다음 명령을 사용하여 Superagent를 설치합니다.

npm install superagent

TypeScript에서 Superagent를 사용하기

TypeScript에서 Superagent를 사용하려면 다음과 같이 모듈을 가져와야 합니다.

import request from 'superagent';

이제, Superagent를 사용하여 GET 요청을 보내보겠습니다.

async function fetchData() {
    try {
        const response = await request.get('https://api.example.com/data');
        console.log(response.body);
    } catch (error) {
        console.error('Error fetching data:', error);
    }
}

fetchData();

위의 예제에서 try...catch 블록을 사용하여 비동기 코드를 감쌌습니다. 이를 통해 에러를 캐치하고, 콘솔에 에러 메시지를 출력할 수 있습니다.

Superagent를 통한 상세한 에러 핸들링

Superagent를 이용하여 HTTP 요청을 보내다가 발생하는 세부적인 에러를 다루고 싶을 때는 다음과 같이 catch 블록에서 HTTP 상태 코드에 따라 다른 처리를 할 수 있습니다.

async function fetchData() {
    try {
        const response = await request.get('https://api.example.com/data');
        console.log(response.body);
    } catch (error) {
        if (error.response) {
            // 서버의 응답이 있지만, HTTP 상태 코드가 에러인 경우
            console.error('Server error:', error.response.status);
            console.error(error.response.body);
        } else if (error.request) {
            // 요청은 성공했지만, 서버에서 응답이 없는 경우
            console.error('No response from server');
        } else {
            // 요청 자체가 실패한 경우
            console.error('Request failed:', error.message);
        }
    }
}

fetchData();

이렇게 함으로써, Superagent를 사용하여 TypeScript에서 HTTP 요청을 보낼 때 에러를 효과적으로 핸들링할 수 있습니다.

이제 Superagent를 통한 에러 핸들링에 대한 이해를 바탕으로 실제 프로젝트에서 더 안정적인 HTTP 요청을 보낼 수 있을 것입니다.