2023. 9. 11. 01:18ㆍ카테고리 없음
`req.on`은 Node.js에서 사용되는 이벤트 리스너를 등록하기 위해 사용되는 메서드입니다. 이를 통해 클라이언트의 HTTP 요청에 대한 이벤트를 처리할 수 있습니다. 주로 요청 본문(body)의 데이터를 읽거나 다룰 때 사용됩니다.
일반적으로 `req` 객체는 Readable Stream의 인스턴스이며, 이 객체에서 발생하는 이벤트를 리스닝하려면 `req.on`을 사용합니다. 예를 들어, 요청 본문에서 데이터를 읽기 위해 "data" 이벤트에 대한 리스너를 등록할 수 있습니다.
다음은 간단한 예제입니다:
const http = require('http');
const server = http.createServer((req, res) => {
// 클라이언트의 HTTP 요청에서 데이터를 읽기 위한 이벤트 리스너 등록
req.on('data', (chunk) => {
console.log(`받은 데이터: ${chunk}`);
});
// 클라이언트에게 응답 보내기
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World!');
});
server.listen(3000, () => {
console.log('서버가 3000 포트에서 실행 중입니다.');
});
위의 예제에서 `req.on('data', ...)`을 사용하여 클라이언트가 데이터를 전송할 때마다 데이터를 읽고 로그에 출력합니다.
요약하면, `req.on`은 클라이언트의 HTTP 요청에서 발생하는 이벤트를 처리하기 위해 사용되며, 주로 요청 본문의 데이터를 처리하는 데 사용됩니다.
`req.on('end', callback)`는 Node.js의 HTTP 요청 객체인 `req`에서 "end" 이벤트를 처리하기 위한 메서드입니다. 이 이벤트는 HTTP 요청의 데이터 스트림이 완료되었을 때 발생하며, 주로 요청 본문의 모든 데이터를 읽은 후에 수행할 작업을 정의하는 데 사용됩니다.
`req` 객체는 Readable Stream의 한 종류로, HTTP 클라이언트에서 서버로 데이터를 보낼 때 데이터를 스트림 형태로 받을 수 있습니다. "end" 이벤트는 이 데이터 스트림이 끝났을 때 발생하며, 그 후에 데이터 읽기 또는 처리 작업을 마무리할 수 있습니다.
다음은 "end" 이벤트를 사용하는 예제입니다:
const http = require('http');
const server = http.createServer((req, res) => {
let requestData = '';
// 클라이언트의 HTTP 요청에서 데이터를 읽기 위한 이벤트 리스너 등록
req.on('data', (chunk) => {
requestData += chunk;
});
// 클라이언트의 HTTP 요청 데이터를 모두 읽은 후에 실행되는 이벤트 리스너 등록
req.on('end', () => {
console.log('요청 데이터를 모두 받았습니다.');
console.log(`요청 데이터: ${requestData}`);
// 클라이언트에게 응답 보내기
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World!');
});
});
server.listen(3000, () => {
console.log('서버가 3000 포트에서 실행 중입니다.');
});
위의 예제에서 "end" 이벤트는 클라이언트의 요청 데이터를 모두 읽은 후에 실행되며, 이때 `requestData` 변수에 모든 데이터가 쌓여 있습니다. 그런 다음 이 데이터를 로그에 출력하거나 다른 처리 작업을 수행할 수 있습니다.
요약하면, `req.on('end', callback)`는 HTTP 요청에서 데이터 스트림이 완료되었을 때 실행할 콜백 함수를 등록하는 데 사용됩니다. 이를 통해 요청 본문의 데이터를 안전하게 처리하고 응답을 생성할 수 있습니다.