Node.js는 Chrome V8 JavaScript 엔진을 기반으로 하는 비동기 이벤트 중심 JavaScript 런타임 환경입니다. 효율적인 웹 애플리케이션을 개발하는 데 사용할 수 있으며 그 중 하나는 HTTP 프로토콜을 통한 데이터 상호 작용입니다. HTTP 프로토콜에서 GET 요청과 POST 요청은 가장 일반적인 두 가지 요청 방법입니다. 이번 글에서는 Node.js에서 POST 요청과 응답을 구현하는 방법을 주로 소개합니다.
1. HTTP 요청 및 응답의 기본
POST 요청 및 응답을 만들기 전에 먼저 HTTP 요청 및 응답의 기본 개념을 이해해야 합니다. HTTP에서 요청은 요청 라인, 요청 헤더, 요청 본문의 세 부분으로 구성됩니다. 응답은 상태 표시줄, 응답 헤더, 응답 본문의 세 부분으로 구성됩니다.
요청 줄에는 요청 방법, 요청된 URL 및 HTTP 프로토콜 버전 번호가 포함됩니다. 요청 헤더에는 Accept, Content-Type, Authorization 등과 같은 요청 관련 메타 정보가 포함됩니다. 요청 본문에는 특정 요청 데이터가 포함됩니다. POST 요청인 경우 요청 본문에는 제출된 양식 데이터가 포함됩니다.
응답 상태 줄에는 HTTP 프로토콜의 버전 번호, 상태 코드 및 상태 설명이 포함됩니다. 응답 헤더에는 Content-Type, Cache-Control, Set-Cookie 등과 같은 응답 관련 메타 정보가 포함됩니다. 응답 본문에는 서버 응답 데이터가 포함됩니다.
2. Node.js의 POST 요청
Node.js에서는 HTTP 모듈을 사용하여 HTTP 요청을 처리할 수 있습니다. http.createServer() 메소드를 통해 HTTP 서버를 생성한 후 request.on() 메소드를 사용하여 요청 이벤트를 수신하고 요청 객체를 얻습니다. 요청 메소드, URL, 요청 헤더, 요청 본문 등의 정보는 요청 객체를 통해 얻을 수 있습니다.
POST 요청의 경우 요청 객체의 데이터 이벤트와 종료 이벤트를 통해 요청 본문의 데이터를 모니터링해야 합니다. 그중에서 데이터 이벤트는 요청 본문 데이터의 일부를 전달할 때마다 여러 번 트리거됩니다. 데이터 이벤트 콜백 함수에서 이러한 데이터를 함께 연결하면 완전한 요청 본문 데이터가 얻어집니다. 종료 이벤트 콜백 함수에서 요청 본문 데이터를 추가로 처리할 수 있습니다.
다음은 POST 요청을 처리하고 응답을 반환하는 기능을 구현하는 간단한 Node.js 예제입니다.
const http = require('http'); http.createServer(function (request, response) { if (request.method === 'POST') { let body = ''; request.on('data', function (data) { body += data; }); request.on('end', function () { console.log('POST请求体数据为:', body); response.end('POST请求成功!'); }); } else { response.end('暂不支持除POST外的其他请求方式!'); } }).listen(8888); console.log('服务器启动成功!');
이 코드는 HTTP 서버를 생성하고 포트 8888을 수신합니다. POST 요청을 받으면 요청 본문 데이터를 스플라이싱하여 콘솔에 출력하고, 다른 요청을 받으면 "POST 이외의 요청 방법은 아직 지원되지 않습니다!"라는 응답 메시지가 반환됩니다. 컬 명령을 통해 POST 요청을 시뮬레이션할 수 있습니다. 예:
curl -X POST -d 'hello post request' http://localhost:8888
이 명령은 POST 요청을 http://localhost:8888로 보내고 hello post 요청 데이터를 요청 본문으로 사용합니다.
3. Node.js의 POST 응답
POST 요청에 대한 응답의 경우 response.write() 메서드를 사용하여 응답 본문에 응답 데이터를 씁니다. 응답 데이터가 많은 경우 response.write() 메서드를 사용하여 응답 데이터의 일부를 여러 번 쓰고, 마지막으로 response.end() 메서드를 사용하여 나머지 데이터를 쓰고 응답을 완료할 수 있습니다. response.end() 메서드는 한 번만 호출할 수 있다는 점에 유의하세요.
다음은 POST 요청을 처리하고 응답을 반환하는 기능을 구현하는 간단한 Node.js 예제입니다.
const http = require('http'); http.createServer(function (request, response) { if (request.method === 'POST') { let body = ''; request.on('data', function (data) { body += data; }); request.on('end', function () { console.log('POST请求体数据为:', body); response.writeHead(200, {'Content-Type': 'text/plain'}); response.write('收到POST请求,请求体为:' + body); response.end(); }); } else { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('暂不支持除POST外的其他请求方式!'); } }).listen(8888); console.log('服务器启动成功!');
이 코드는 HTTP 서버를 생성하고 POST 요청을 처리하는 기능을 구현합니다. POST 요청을 받으면 요청 본문 데이터가 콘솔에 출력되고, 다른 요청이 수신되면 수신된 데이터가 클라이언트에 응답으로 반환됩니다. "POST 이외의 다른 요청 방법은 아직 지원되지 않습니다." 정보. 컬 명령을 통해 POST 요청을 시뮬레이션할 수 있습니다. 예:
curl -X POST -d 'hello post request' http://localhost:8888
이 명령은 POST 요청을 http://localhost:8888로 보내고 hello post 요청 데이터를 요청 본문으로 사용합니다. 서버는 수신된 데이터를 변경 없이 반환합니다.
4. 요약
이 글에서는 Node.js에서 POST 요청과 응답을 처리하는 방법을 소개합니다. POST 요청 시 요청 본문 데이터의 데이터 이벤트 및 종료 이벤트를 모니터링하고 응답 시 요청 데이터를 처리해야 하며, response.write() 메서드를 사용하여 응답 데이터를 응답 본문을 선택하고 마지막으로 응답을 사용합니다. end() 메서드는 응답을 종료합니다. HTTP 프로토콜의 기본 사항을 이해하면 Node.js의 POST 요청과 응답을 더 깊이 이해할 수 있습니다.
위 내용은 nodejs 게시 요청 및 응답의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!