100일 코딩챌린지 - Node.js로 백엔드 개발하기(with Express) 1

하파타카·2023년 6월 16일
0

NodeJS란?

  • 자바스크립트 런타임(js코드를 실행하는 도구).
  • 외부의 자바스크립트 코드를 실행할 수 있음.
  • NodeJS 런타임도우과 자바스크립트를 사용해 모든 컴퓨터를 서버로 삼을 수 있으므로 서버에서 실행되는 코드를 작성할 수 있다.
  • Javascript처럼 변수, 상수 선언 및 조건문, 반복문 등의 문법 사용가능.
  • Javascript와는 달리 DOM요소에 직접 접근할 수 없음.

node.js로 서버구축

참고링크: 서버구축하기 - http basic

실습 1

1) 코드 작성
- app.js -

const http = require('http');

function handleRequest(request, response) {
  response.statusCode = 200;
  response.end('<h1>Hello world!</h1>');
}

const server = http.createServer(handleRequest);

server.listen(3000);

2) vscode에서 새 터미널을 열어 node app.js 입력 => 커멘드의 실행이 끝나지 않았으면 성공(서버가 실행되고 있는 것)
서버종료는 터미널에 커서를 둔 상태로 ctrl + c 입력

*이떄 경로의 문제로 app.js파일이 실행되지 않을 수 있으니 주의!

3) http://localhost:3000/ 접속

=> 작성한 h1태그로 응답하는것을 확인가능.(그 외 html골격요소는 자동)

실습 2

url마다 다른 페이지 로드하기

1) 코드 작성
- app.js -

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);

http://localhost:3000/ 접속 시 1번 실습과 동일한 결과가 나옴.
http://localhost:3000/currenttime 접속 시 아래처럼 현재 시간을 동적으로 받아 결과를 보여줌.


ExpressJS

  • node.js환경의 Javascript 라이브러리.
  • Express를 통한 request & response 핸들링(nodeJS로만 할 경우 경우의 수마다 일일히 작업을 해주어야하는 번거로움이 있음)
  • 데이터를 파싱하여 동적으로 구축할 수 있음.

설치

터미널에 npm install express 입력
추후 프로젝트 폴더를 공유할땐 생성된 node_modules폴더는 제외됨.(install시 자동으로 다운받을 수 있기 때문)

실습

nodejs로 실행했던 실습 그대로 express로 실행하기

- app.js -

const express = require('express');

const app = express();

app.get('/currenttime', function (req, res) {
  res.send('<h1>' + new Date().toISOString() + '</h1>');
}); // localhost:3000/currenttime

app.get('/', function (req, res) {
  res.send('<h1>Hello world!</h1>');
}); // localhost:3000/

app.listen(3000);

실행은 동일하게 터미널에 node app.js입력.(종료도 동일)

서버 실행 시 참고
서버실행 후 코드를 변경하였다면 변경한 코드를 적용하기 위해서 서버를 재실행해야한다.
재실행하지 않을 경우 서버를 실행했던 코드를 바탕으로 브라우저만 새로고침 되니 주의.

nodemon 사용

코드를 수정할 때마다 매번 서버를 재시작해줘야하는 번거로움을 해결하기 위해 사용하는 패키지.
터미널에 npm install nodemon --save-dev 입력하여 패키지 설치.
참고로 --save-dev는 개발중에 사용하는 패키지임을 알리기 위해 더하는 키워드임

설치이후에는 nodemon을 통해 서버를 시작함.
- pakage.json -

~생략~
  "scripts": {
    "start": "nodemon app.js"
  },
~생략~

수정 후 터미널에 npm start 입력

터미널에서 nodemon에 의해 서버가 실행되었음을 확인가능.

=> 이후 코드 수정 시 브라우저만 새로고침하면 수정된 사항이 바로 반영됨.

profile
천 리 길도 가나다라부터

0개의 댓글