express 서버 사용해보기

김무연·2023년 12월 14일

Backend

목록 보기
32/49

express 소개

http 모듈로 웹 서버를 만들 때 코드가 보기 좋지 않고, 확장성도 떨어진다.

  • react, vue처럼 프레임워크를 이용하여 해결
  • 대표적인 것이 express, Koa, Hapi
  • 코드 관리도 용이하고 편의성이 많이 높아짐

1.package.json 만들기

직접 만들거나 npm init 명령어로 생성

  • nodemon이 소스 코드 변경 시 서버를 재시작 해줌
npm i express
npm i -D nodemon

2. app.js 작성하기

서버 구동의 핵심이 되는 파일

  • app.set(‘port’, 포트)로 서버가 실행될 포트 지정
  • app.get(‘주소’, 라우터)로 GET 요청이 올 때 어떤 동작을 할지 지정
  • app.listen(‘포트’, 콜백)으로 몇 번 포트에서 서버를 실행할지 지정
const express = require('express');

const app = express();

app.get('/', (req, res) => {
  res.send('hello express');
});

app.post('/', (req, res) => {
  res.send('hello express');
});

app.listen(3000, () => {
  console.log('익스프레스 서버 실행');
});

코드를 보면 http로 모듈을 썻을 때 if(req.method === 'GET'), elseIf(req.method === 'POST') 이렇게 했을 때 보다 app.get, app.post 식으로 매우 간편하게 변한 것을 확인 할 수 있다

app.set()

기존

app.listen(3000, () => {
  console.log('익스프레스 서버 실행');
});

app.set()을 이용할 시

app.set('port', process.env.PORT || 3000)

app.listen(app.get('port'), () => {
  console.log('익스프레스 서버 실행');
});

위 처럼 app.set으로 포트번호를 전역 변수 같이 쓸 수 있다.

nodemon 사용

nodemon 사용시 서버 코드에서 변경이 있을 때 서버를 자동으로 재실행 해준다. 다시 껏다 킬 필요 x

만약 nodemon app 했을 때 실행이 안될 경우, global로 설치되었을 수도 있으니 package.json에 표시해준 후 npx로 실행시켜 줌

express 기능

위 처럼 없는 주소를 쳣을 때 자동으로 404에러를 발생시켜주고, 마찬가지로 네트워크 에러도 처리해준다.

package.json 에 scripts 추가


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

위 처럼 npm start 만 하면 자동으로 npx nodemon app이 실행되게 설정하면 편하다

profile
Notion에 정리된 공부한 글을 옮겨오는 중입니다... (진행중)

0개의 댓글