nodeJS 기초

itisny·2023년 8월 19일
0

nodeJS

nodeJS는 javaScript runtime이다. 즉, js 코드를 실행하는 도구이다.

  • 브라우저와 nodeJS에서 JS로 작성하는 것은 똑같지만, 일부 기능의 차이가 있다.
    • 예를 들어 브라우저에서는 DOM과 상호작용할 수 있다. 그러나 구문 분석된 HTML 콘텐츠에서 분리된 JS를 실행하기 때문에 nodeJS에서는 사용할 수 없다.
    • 그대신 nodeJS는 파일 시스템(브라우저에 없는 것)에 액세스할 수 있다는 예가 있다.
  • 요청과 응답을 처리하기 위해 nodeJS를 사용할 때, 꼭 자바스크립트로 서버를 만들어야한다.

사용자 지정 nodeJS 서버 생성 코드

  • nodeJS를 실행하고 싶다면 node {file_name} 을 명령줄에 치고 엔터를 누르면 된다.
  • 명령줄을 통해 시작한 nodeJS로 작성된 웹서버는 ctrl+C를 통해 실행 중인 프로세스를 수동으로 종료해야한다.
const http = require('http');

function handleRequest(request, response) {
  if (request.url === '/currenttime') {
    response.statusCode = 200;
    response.end('<h1>'+ new Date().toISOString() +'</h1>');
  } else if (request.url === '/') {
    response.statusCode = 200;
    response.end('<h1>Hello World!</h1>');
  }
}

const server = http.createServer(handleRequest);

server.listen(3000);
  • require
    • node js에 내장된 특수 키워드(함수)
    • require('노드js에 구축된 패키지 이름')
    • node js에 내장된 유틸리티 메서드와 속성으로 가득 찬 객체가 반환된다.
  • http 패키지 : 요청과 응답을 처리하는데도움되는 특정 기능
  • createServer() : 내부적으로 필요한 모든 서버 기능이 포함된 객체 반환
  • handleRequest: 들어오는 요청을 처리하는 함수
    • createServer는 자체적으로 request, response 매개변수 값을 함수로 원한다.
      • request : 들어오는 요청에 대한 데이터가 포함된 객체
      • response: 요청에 대한 응답을 보낼 수 있게하는 객체
    • "path(경로)"는 일반적으로 대시 이외에 특별한 문자가 없는 모두 소문자여야 한다. 또한 예상할 수 있는 페이지의 내용(예: /users, /product-detail...)을 기술해야 한다
    • statusCode: 요청이 성공했는지 여부를 브라우저에게 알리는 방법
      • 200 -> 성공
    • end: 보내야하는 데이터 전달
      • 동적 데이터나 생성된 데이터 가져오기 => 이게 바로 서버를 사용하는 이유
  • listen(포트번호) : 포트 번호에서 수신대기 시작
    • port(포트)
      • 네트워크 트래픽의 진입점.브라우저에서 일부 원격 시스템으로 전송되는 http 요청은 서버에서 처리하기 위해 이러한 진입점이 필요하다.
      • 보통 보안상의 이유로 대부분의 포트가 닫혀 있다.
      • 80은 암호화되지 않은 요청을 보내는 일반적인 포트이다.기본값으로 입력할 필요없다.
      • 포트 80 및 443은 모든 웹 서버에서 수신 트래픽(요청)을 처리하기 위해 노출(열린)된 기본 포트이다.
      • 브라우저는 포트를 내부에 추가하지만 nodejs로 자체 서버를 생성할때 들어오는 요청을 수신할 포트를 노드js에게 알려야 한다.

0개의 댓글