[유튜브강의] Smart Lab. 코드기어 NodeJS기초- 08.Http 서버만들기-1 > 자유게시판

본문 바로가기

사이트 내 전체검색

뒤로가기 자유게시판

[유튜브강의] Smart Lab. 코드기어 NodeJS기초- 08.Http 서버만들기-1

페이지 정보

작성자 로봇 작성일 25-02-14 10:24 조회 2,734 댓글 3

본문

// 이 글은 NodeJS 공식 홈페이지의 다음 글을 참고하여 작성하였습니다.
// https://nodejs.org/ko/docs/guides/anatomy-of-an-http-transaction/

const http = require('http'); // 우선 웹서버 객체를 만듭니다.

const server = http.createServer();
server.listen(8080);
server.on('listening', () => {
  console.log(`listen on 8080 !!!`);
});

server.on('request', (request, response) => {
  console.log(request.headers);

  const { headers, method, url } = request; // request에는 url, method, header 등의 정보가 포함됩니다.
  const userAgent = headers['user-agent'];
  console.log(`method : ${method}`);
  console.log(`url : ${url }`);
  console.log(`userAgent : ${userAgent}`);

  let body = []; // post나 put의 request에서 stream으로 전달되는 data와 end를 이용하면 body를 읽어올 수 있습니다.
  request.on('error', (err) => {
    console.error(err); // 여기서 `stderr`에 오류 메시지와 스택 트레이스를 출력합니다.
  }).on('data', (chunk) => {
    body.push(chunk);
  }).on('end', () => {
    body = Buffer.concat(body).toString();
    console.log(body);

    response.write('<h1>Node Server</h1>');
    response.end();
  });

  // 다음과 같이 /echo로 요청하는 post 메소드에 대해서 응답하는 서버를 만들 수 있습니다.
  // if (request.method === 'POST' && request.url === '/echo') {
  //  request.pipe(response);
  // } else {
  //  response.statusCode = 404;
  //  response.end();
  // }
 
}); // 이때 사용된 createServer는 server 객체를 생성하고 발생한 이벤트를 전달하는 역할을 합니다.

댓글목록 3

로봇님의 댓글

로봇 작성일

const http = require('http'); // 우선 웹서버 객체를 만듭니다.

http.createServer((request, response) => { // 생성한 서버에서 request를 받아 처리할 수 있습니다.
  const { headers, method, url } = request; // request에는 url, method, header 등의 정보가 포함됩니다.
  let body = []; // post나 put의 request에서 stream으로 전달되는 data와 end를 이용하면 body를 읽어올 수 있습니다.
    request.on('error', (err) => {
    console.error(err);
    }).on('data', (chunk) => {
    body.push(chunk);
    }).on('end', () => {
    body = Buffer.concat(body).toString();

    response.on('error', (err) => {
    console.error(err);
    });

    // 다음과 같이 /echo로 요청하는 post 메소드에 대해서 응답하는 서버를 만들 수 있습니다.
    // if (request.method === 'POST' && request.url === '/echo') {
    //  request.pipe(response);
    // } else {
    //  response.statusCode = 404;
    //  response.end();
    // }

    response.writeHead(200, {'Content-Type': 'application/json'})
    const responseBody = { headers, method, url, body };
    response.end(JSON.stringify(responseBody))
  });
}).listen(8080);

// 이때 사용된 createServer는 server 객체를 생성하고 발생한 이벤트를 전달하는 역할을 합니다.

로봇님의 댓글

로봇 작성일

const http = require('http');

http.createServer((request, response) => {
  const { headers, method, url } = request;
  let body = [];
  request.on('error', (err) => {
    console.error(err);
  }).on('data', (chunk) => {
    body.push(chunk);
  }).on('end', () => {
    body = Buffer.concat(body).toString();

    response.on('error', (err) => {
      console.error(err);
    });

    response.writeHead(200, {'Content-Type': 'application/json'})
    const responseBody = { headers, method, url, body };
    response.end(JSON.stringify(responseBody))
  });
}).listen(8080);

로봇님의 댓글

로봇 작성일

에코 서버 만들기

다음과 같이 /echo로 요청하는 post 메소드에 대해서 응답하는 서버를 만들 수 있습니다.

const http = require('http');

http.createServer((request, response) => {
  request.on('error', (err) => {
    console.error(err);
    response.statusCode = 400;
    response.end();
  });
  response.on('error', (err) => {
    console.error(err);
  });
  if (request.method === 'POST' && request.url === '/echo') {
    request.pipe(response);
  } else {
    response.statusCode = 404;
    response.end();
  }
}).listen(8080);

전체 218건 1 페이지
게시물 검색
Copyright © 소유하신 도메인. All rights reserved.

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

PC 버전으로 보기