>웹 프론트엔드 >프런트엔드 Q&A >nodejs에서 다른 서버를 요청하는 방법

nodejs에서 다른 서버를 요청하는 방법

PHPz
PHPz원래의
2023-04-26 09:06:24790검색

최근에는 프론트엔드 개발 기술이 급속도로 발전하면서 프론트엔드 개발자의 책임 범위도 점점 더 넓어지고 있습니다. 일반적인 HTML, CSS 및 JavaScript 외에도 프런트엔드 개발자는 Node.js와 같은 일부 백엔드 개발 기술을 숙달해야 합니다.

Node.js는 JavaScript 언어 기반의 오픈 소스 크로스 플랫폼 운영 환경으로, 서버 측에서 JavaScript를 실행할 수 있습니다. 이벤트 중심의 비차단 I/O 모델을 사용하고 실시간 데이터 전송을 지원합니다. 따라서 프론트엔드와 백엔드가 분리된 현대 개발 모델에서 Node.js는 프론트엔드 개발자에게 필수적인 기술이 되었습니다.

Node.js에서 다른 서버로 HTTP 요청을 보내는 것은 일반적인 작업일 뿐만 아니라 공식적으로 제공되는 핵심 모듈 중 하나인 "http" 모듈이기도 합니다. 이 모듈은 HTTP 클라이언트 요청 및 HTTP 서버 측(예: Node.js의 HTTP 서버)을 구현하기 위한 기능을 제공합니다.

이 글에서는 Node.js의 "http" 모듈을 사용하여 HTTP 요청을 다른 서버로 보내는 방법을 설명합니다.

  1. 요청을 보내려면 http.request() 메소드를 사용하세요

http.request(options[, callback])

이 메소드는 http.ClientRequest 객체를 반환합니다. options는 다음 속성을 포함하는 객체입니다:

  • protocol - 요청에 사용되는 프로토콜(예: http: 또는 https:).
  • hostname - 요청할 서버의 도메인 이름 또는 IP 주소입니다.
  • port - 서버가 응답하는 포트 번호입니다.
  • path - 요청된 경로입니다.
  • method - GET, POST 등 요청에 사용되는 HTTP 메서드입니다.
  • headers - 요청 헤더가 포함된 개체입니다.

콜백은 서버로부터 응답을 받았을 때 호출되는 함수입니다.

다음 예에서는 jsonplaceholder.typicode.com에 GET 요청을 보내고 블로그 게시물의 세부 정보를 반환합니다.

const http = require('http')

const options = {
  hostname: 'jsonplaceholder.typicode.com',
  path: '/posts/1',
  method: 'GET'
}

const req = http.request(options, (res) => {
  console.log(`状态码: ${res.statusCode}`)

  res.on('data', (data) => {
    console.log(`响应主体: ${data}`)
  })

  res.on('end', () => {
    console.log('响应中已无数据。')
  })
})

req.on('error', (error) => {
  console.error(`请求遇到问题: ${error}`)
})

req.end()

이 예에서는 http.ClientRequest 객체가 생성되고 GET이 서버 요청으로 전송됩니다. , JSON 형식으로 데이터를 지정합니다. 서버로부터 응답을 받으면 응답 상태 코드와 응답 본문을 인쇄합니다.

  1. 요청을 보내려면 http.get() 메서드를 사용하세요

http.get(options[, callback])

이 메서드는 http.request() 메서드와 유사하지만 GET 요청만 구현할 수 있습니다. .

아래 예에서는 http.get() 메서드를 사용하여 동일한 서버에 GET 요청을 보냅니다.

const http = require('http')

http.get('http://jsonplaceholder.typicode.com/posts/1', (res) => {
  console.log(`状态码: ${res.statusCode}`)

  res.on('data', (data) => {
    console.log(`响应主体: ${data}`)
  })

  res.on('end', () => {
    console.log('响应中已无数据。')
  })
}).on('error', (error) => {
  console.error(`请求遇到问题: ${error}`)
})

이 예에서는 http.get() 메서드를 사용하여 jsonplaceholder에 GET 요청을 보냅니다. .typicode.com 서버 GET 요청을 수행하고, 서버로부터 응답을 받으면 응답 상태 코드와 응답 본문을 인쇄합니다.

  1. 요청 라이브러리를 사용하여 요청 보내기

Node.js에서 제공하는 "http" 모듈 외에도 request 및 axios와 같은 일부 요청 라이브러리도 있습니다. 이러한 라이브러리에는 고급 기능, 약속 지원, 리디렉션 및 오류 처리 등이 있습니다.

다음 예에서는 요청 라이브러리를 사용하여 jsonplaceholder.typicode.com 서버에 GET 요청을 보냅니다.

const request = require('request')

request('http://jsonplaceholder.typicode.com/posts/1', (error, response, body) => {
  console.log(`状态码: ${response.statusCode}`)
  console.log(`响应主体: ${body}`)
})

이 예에서는 요청 라이브러리를 사용하여 jsonplaceholder.typicode.com에 GET 요청을 보냅니다. server, and in 서버로부터 응답을 받으면 응답 상태 코드와 응답 본문을 인쇄합니다.

요약

이 글에서는 Node.js의 "http" 모듈을 사용하여 HTTP 요청을 다른 서버로 보내는 방법을 설명합니다. 기본 요청 작업은 http.request() 메서드와 http.get() 메서드를 사용하여 구현할 수 있으며 요청 라이브러리(예: request 및 axios)는 더 고급 기능을 지원할 수 있습니다. 개발자는 자신의 필요와 습관에 따라 HTTP 요청 작업을 구현하는 다양한 방법을 선택할 수 있습니다.

위 내용은 nodejs에서 다른 서버를 요청하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:nodejs로 개발할 것다음 기사:nodejs로 개발할 것