HOWTO · NodeJS

Node.js를 사용하여 데이터를 가져오기 위해 HTTP 요청 수행

오늘의 기사에서는 node.js를 사용하여 데이터를 얻기 위해 HTTP 요청을 만드는 방법을 배웁니다.

이 페이지의 내용

오늘의 기사에서는 HTTP 요청을 만들고 node.js를 사용하여 데이터를 가져오는 방법을 배웁니다.

Node.js를 사용하여 데이터를 가져오기 위한 HTTP 요청

node.js의 내장 모듈을 사용하여 HTTP 요청을 보낼 수 있습니다. 콜백은 이러한 표준 모듈에서 요청을 처리하고 데이터를 얻는 데 사용됩니다.

Axios, node-fetch, super agent 및 기타 모듈을 사용하여 HTTP 요청을 보낼 수도 있습니다. HTTPs 모듈은 request 기능을 사용하여 호출합니다.

서버 URL의 호스트 이름, 포트 번호 및 경로와 요청 종류를 제공하는 옵션 개체가 이 요청 함수에 인수로 전달됩니다.

callback 함수는 두 번째 인수입니다. 요청이 처리되면 이 콜백 기능이 활성화됩니다. HTTPs 모듈에는 요청을 처리하고 요청된 데이터를 가져올 수 있는 여러 이벤트가 있습니다.

예를 들어 요청을 종료하려면 오류 발생 시 req.end()req.on('error')를 사용하십시오. 요청을 받은 후 서버는 데이터를 처리하고 청크로 응답을 다시 보냅니다.

res.on('data') 또는 res.on('end')와 같은 응답 관련 이벤트가 발생하면 응답을 검색할 수 있습니다. end 이벤트에서 전체 응답이 반환되면 data 이벤트에서 데이터 청크를 연결한 후 콘솔에 출력할 수 있습니다.

https.request비동기이므로 요청이 완료되기 전에 서버 응답을 읽으려고 시도하면 정의되지 않은 반환됩니다. 아래의 간단한 예를 통해 위의 프로세스를 이해해 봅시다.

예제 코드:

const https = require('https');
const options = {
  hostname: 'jsonplaceholder.typicode.com',
  port: 443,
  path: '/posts/1',
  method: 'GET',
};

function submitRequest() {
  const req = https.request(options, res => {
    let outputData = ''
    console.log(`statusCode: ${res.statusCode}`);
    res.on('data', dataChunk => {
      outputData += dataChunk;
    });
    res.on('end', () => {
      console.log('outputData', outputData);
    });
  });
  req.on('error', error => {
    console.error('error', error);
  });
  req.end();
}
submitRequest()

위의 코드 예제에서는 pathport 번호를 지정하여 모의 서버에 GET 요청을 보냅니다. 요청을 받고 데이터를 처리한 후 서버는 응답을 분할하여 다시 보냅니다.

end 메서드에서 응답이 완전히 반환되면 응답 데이터를 연결하고 콘솔에 출력할 수 있습니다.

node.js와 호환되는 Replit에서 위의 코드 줄을 실행합니다. 다음과 같은 결과가 표시됩니다. 위 코드에 대한 데모도 여기에서 찾을 수 있습니다.

출력:

statusCode: 200
outputData {
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}