백엔드/Node.js

[Do it! Node.js 입문] 08. express 설정

JYUN_ 2024. 3. 30. 11:16

익스프레스(express)는 노드에 기반한 백엔드 프레임워크로, js를 사용해서 서버 개발을 할 때 적합하다. 

 

익스프레스의 주요 기능들

  • 라우팅
  • 미들웨어
  • 템플릿 엔진 (동적, ejs)
  • 정적인 파일 지원 (css, html)

 

작업 환경 만들기

1. 애플리케이션 정보를 담는 package.json 만들기

npm init

npm을 초기화하면 즉시 package.json을 만들 수 있다.

이때 entry point를 app.js로 설정해준다. (국룰이기 때문)

 

2. 익스프레스 패키지 설치

npm i express

npm i 또는 npm install 키워드를 사용하여 express를 설치한다.

설치가 끝나면 json파일에 현재 설치한 익스프레스 버전이 함께 표시된다.

 

3. 노드몬 설치

노드몬(nodemon)은 브라우저에서 서버를 리스닝하고 있다가 애플리케이션 파일이 수정되면 그 파일을 저장하고 서버를 자동으로 재시작 해준다. 

서버를 직접 종료하고 재시작하지 않아도 브라우저만 새로 고치면 변경 사항이 적용되어 나타난다.

npm i nodemon -g --save-dev

  • -g: 노드몬 패키지를 global하게 설치한다. 현재 작업 폴더뿐만 아니라 다른 작업 폴더에서도 노드몬을 사용할 수 있다.
  • --save-dev:  develop모드를 의미한다. 개발하는 동안에만 사용하고 애플리케이션 배포할 때는 포함되지 않도록 한다.

※ 윈도우에서 nodemon으로 js 파일을 실행할 때 오류가 난다면

powershell말고 command prompt로 바꿔서 실행해보자

 

4. 서버 시작하기

노드몬을 이용해 서버를 시작할 때는 'nodemond + 실행파일' 을 입력하면 된다. 

하지만 서버를 시작하는 스크립트를 따로 작성하면 더욱 편리하게 이용할 수 있다.

 

작업 폴더 안의 package.json 을 찾은 뒤 script에 start 코드를 추가해준다.

 "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon app.js"
  },

 

스크립트 명령은  npm명령과 함께 사용된다. 따라서 터미널 창에 npm start로 서버를 시작할 수 있다.

 

익스프레스 서버 만들기

//app.js
const express = require("express"); // 1
const app = express(); // 2
const port = 3000; // 3
 
app.get("/", (req, res) => { // 4
	res.status(200);
    res.send("Hello Node!");
});

app.listen(port, () => { // 5
	consol.log(`${port}번 포트에서 서버 실행 중`);
});
  1. 익스프레스 패키지를 가져온다.
  2. express를 실행하면 app이라는 서버가 만들어진다. app 객체에서는 익스프레스의 모든 기능을 사용할 수 있게 된다.
  3. 포트 번호를 port 변수에 따로 할당하였다.
  4. HTTP 요청은 GET, POST, PUT 등 여러가지가 있는데 그 중 GET 요청을 처리하려면 get함수를 사용한다.
    즉, 루드(/) 경로에서 GET요청을 하면 그 뒤에 오는 콜백 함수를 실행하라는 뜻이다.
  5. listen 함수는 지정한 포트로 요청이 들어오는지 리스닝한다. 요청이 들어오면 그 뒤에 오는 콜백 함수를 실행한다.