Node.js는 Chrome V8 엔진을 기반으로 하는 JavaScript 런타임 환경으로, 이를 통해 확장 가능한 고성능 웹 애플리케이션을 쉽게 구축할 수 있습니다. 그 중 요청 모듈은 Node.js에서 매우 일반적으로 사용되는 네트워크 요청 모듈입니다. 이를 통해 Node.js에서 HTTP/HTTPS 요청을 보낼 수 있습니다. 이 글에서는 요청 모듈을 사용하는 방법과 요청에 의해 반환된 데이터를 처리하는 방법을 소개합니다.
1. 요청 모듈 설치
요청 모듈을 사용하기 전에 먼저 요청 모듈을 설치해야 합니다. 콘솔에 다음 명령을 입력하면 됩니다.
$ npm install request --save
이렇게 하면 요청 모듈이 프로젝트에 설치되고 package.json 파일에 추가됩니다.
2. GET 요청 보내기
GET 요청 보내기는 매우 쉽습니다. 요청 모듈의 요청 방법을 사용하면 됩니다. 다음은 간단한 예입니다.
const request = require('request'); request('https://api.github.com/users/octocat', (error, response, body) => { console.log('statusCode:', response && response.statusCode); console.log('body:', body); });
이 예는 GitHub의 사용자 API에 GET 요청을 보내 사용자 이름 octocat으로 사용자 정보를 쿼리합니다. 요청을 보내는 방법은 매우 간단합니다. 요청 메소드를 호출하고 요청된 URL을 전달하면 됩니다.
콜백 함수의 매개변수는 각각 error, response, body입니다. 그중 error는 요청 오류를 나타내고, response는 응답 헤더, 응답 코드 등의 정보가 포함된 응답 개체를 나타내며, API가 반환하는 데이터인 응답 본문을 나타냅니다.
3. POST 요청 보내기
POST 요청 보내기도 매우 쉽습니다. 요청 메소드의 두 번째 매개변수(즉, 옵션)만 특정 요청 정보로 설정하면 됩니다. 다음은 POST 메서드를 사용하여 test라는 이름의 repo를 GitHub API에 추가하는 예입니다.
const request = require('request'); const options = { url: 'https://api.github.com/user/repos', headers: { 'User-Agent': 'request' }, json: true, body: { name: 'test' }, auth: { 'user': 'username', 'pass': 'password' } }; request.post(options, (error, response, body) => { console.log('statusCode:', response && response.statusCode); console.log('body:', body); });
이 예에서는 URL을 GitHub의 URL인 https://api.github.com/user/repos로 설정했습니다. 창고를 생성하는 API입니다. 헤더에는 요청이 요청에 의해 전송되었음을 나타내는 User-Agent가 포함됩니다. Body는 우리가 보내려는 데이터로, GitHub에서 생성하려는 저장소의 이름입니다. json이 true로 설정되어 있으면 전송되는 데이터가 JSON 형식이라는 의미입니다. auth는 사용자 이름과 비밀번호를 포함하여 인증이 필요함을 의미합니다.
4. 응답 데이터 처리
요청을 보낸 후 응답 데이터를 처리해야 합니다. JSON 형식의 데이터의 경우 JavaScript 개체로 직접 구문 분석할 수 있습니다. 다음은 GitHub API에서 반환된 JSON 데이터를 JavaScript 개체로 구문 분석하는 예입니다.
const request = require('request'); request('https://api.github.com/users/octocat', {json: true}, (error, response, body) => { console.log('statusCode:', response && response.statusCode); console.log('login:', body.login); console.log('name:', body.name); });
이 예에서는 옵션에서 json을 true로 설정했습니다. 즉, 응답 데이터를 수신하면 자동으로 JSON으로 구문 분석됩니다. JavaScript 개체로 변환됩니다. 콜백 함수에서는 응답 본문의 로그인 및 이름 속성에 직접 액세스할 수 있습니다.
다른 형식의 데이터의 경우 해당 구문 분석 라이브러리를 사용하여 구문 분석할 수 있습니다. 예를 들어, HTML 형식의 데이터의 경우 분석을 위해 Cherio 라이브러리를 사용할 수 있습니다. 다음은 Cherio를 사용하여 Baidu 검색 결과를 구문 분석하는 예입니다.
const request = require('request'); const cheerio = require('cheerio'); request('https://www.baidu.com/s?wd=nodejs', (error, response, body) => { const $ = cheerio.load(body); $('h3.t a').each((i, el) => { console.log($(el).text()); console.log($(el).attr('href')); }); });
이 예에서는 요청을 통해 Baidu 검색 키워드 nodejs의 결과를 요청했습니다. HTML 데이터를 조작 가능한 DOM 객체로 변환하려면 HTML 데이터를 변환하려면 HTML의 로드 메소드를 사용하세요. 다음으로 선택기를 통해 h3.t a 요소를 선택하고 각 요소를 반복합니다. 루프 내에서 요소의 텍스트 및 href 속성 값을 쉽게 가져오기 위해 요소를 $()로 래핑합니다.
5. 요약
위는 Node.js의 요청 모듈을 사용하여 HTTP/HTTPS 요청을 보내는 기본 방법입니다. 이 모듈을 통해 GET, POST 등의 요청을 쉽게 보내고 요청에서 반환된 데이터를 처리할 수 있습니다. 이 모듈은 매우 편리하지만 사용할 때 보안에 특별한 주의가 필요합니다. 특히 POST 요청을 보낼 때 요청 매개변수를 암호화해야 합니다.
위 내용은 nodejs 요청 요청의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!