[2022.10.16] Express 기초

Reyna·2022년 10월 16일
0

TIL

목록 보기
8/16

설치

//터미널에서 express 설치
$ npm install express --save

웹 서버 만들기

const express = require('express')
const app = express()
const port = 3000

//get 요청
app.get('/', (req,res) => {
  res.send('Hello World!')
})

app.listen(port, () => {
  console.log('Example app listening on port ${port}')
})
//앱 실행
$ node app.js

브라우저에서 http://localhost:3000/ 열기

라우팅

라우팅

메서드와 url에 따라 분기점을 만드는 것

라우트 구조

app.METHOD(PATH, HANDLER)
  • app : express 클래서의 인스턴스
  • METHOD : HTTP 요청 메소드
  • PATH : 서버에서의 경로
  • HANDLER : 라우트가 일치할 때 실행되는 함수

라우트 메소드

  • HTTP 메소드 중 하나로부터 파생되며, express 클래스의 인스턴스에 연결된다.
  • 라우팅 메소드로는 get, post, put, head, delete, options 등이 있다.
  • 특수한 라우팅 메소드인 app.all()은 어떠한 메소드로부터도 파생되지 않는다.

express.Router

const router = express.Router()

router.get('/', (req,res) => {
  res.send('Birds home page');
});

router.get('/about',  (req,res) => {
  res.send('About birds');
});

미들웨어

미들웨어 함수

미들웨어 함수는 프로세스 중간에 관여하여 특정 역할을 수행하는 함수를 말한다.

미들웨어 유형

1. 애플리케이션 레벨 미들웨어

  • app.use()나 app.METHOD() 함수를 이용하여 애플리케이션 미들웨어를 앱 오브젝트의 인스턴스에 바인드할 수 있다.
    const app = express();
    //앱이 요청을 수신할 때마다 실행된다. 
    app.use ((req,res,next) => {
     console.log('Time:', Date.now());
     next();
    })
    //user/:id 경로에 대한 모든 유형의 HTTP 요청에 대해 실행된다. 
    app.use('/user/:id', ((req, res, next) => {
     console.log('Request Type:', req.method);
     next();
    });

2. 라우터 레벨 미들웨어

  • 애플리케이션 미들웨어와 동일한 방식으로 작동한다.
  • express.Router() 인스턴스에 바인드된다.
const app = express()
const router = express.Router()

router.use((req,res,next) => {
  console.log('Time:', Date.now());
  next();
});

3. 써드파티 미들웨어

  • 써드파티 미들웨어는 설치를 먼저 한 다음에 앱에 로드하면 된다.
$ npm install 써드파티 미들웨어 이름
	const 써드파티 = require('써드파티 미들웨어 이름');

	app.use(써드파티());

자주 사용하는 미들웨어

1. body(payload)를 얻고 싶을 때

Express 내장 미들웨어인 express.json()을 사용한다.

참고
https://expressjs.com/ko/guide

0개의 댓글