[Express] Express 라우팅

Ahnjh·2022년 9월 21일
0

Express

목록 보기
2/5

라우팅

라우팅은 애플리케이션 엔드포인트(URI)의 정의, 그리고 URI가 클라이언트 요청에 응답하는 방식을 말한다.

라우팅 메소드

다음코드는 기본적인 라우트의 예이다

const express = require('express');
const app = express();

app.get('/', function(req, res) {
  res.send('hello world !');
});

다음예는 GET, POST, PUT, DELETE 메소드를 사용하는 경우 또는 http 모듈에서 지원되는 기타 모든 HTTP 요청 메소드를 사용하는 경우 등의 "/secret" 에 대한 요청에 실행된다.

app.all('/secret', function (req, res, next) {
  console.log('Accessing the secret section ...');
  next(); 
  //next() 는 다음 미들웨어를 실행시키겠다는 function 이다.

라우트 경로

라우트 경로는 요청 메소드와 조합을 통해 요청이 이루어질 수 있는 엔드포인트를 정의한다. 라우트 경로는 문자열, 문자열패턴, 정규식일 수 있다.

app.get('/ab?cd', function(req, res) {
  res.send('ab?cd');
});
app.get('/ab+cd', function(req, res) {
  res.send('ab+cd');
});
app.get('/ab*cd', function(req, res) {
  res.send('ab*cd');
});

해당 라우트 경로는 butterfly, dragonfly 와 일치하지만 butterflyman 및 dragonfly man 등과는 일치하지 않는다.

app.get('/.*fly$/', function(req, res) {
  res.send('/.*fly$/');
});

응답 메소드

다음 표에 표시된 응답 오브젝트에 대한 메소드(res)는 응답을 클라이언트로 전송하고 요청-응답 주기를 종료 할 수 있다. 라우트 핸들러로부터 다음 메소드 중 어느 하나도 호출되지 않는 경우, 클라이언트 요청은 정지된 채로 방치된다.

메소드 설명
res.download() 파일이 다운되도록 프롬프트한다.
res.end() 응답 프로세스를 종료한다.
res.json() JSON 응답을 전송한다.
res.jsonp() JSONP 지원을 통해 JSON 응답을 전송한다.
res.redirect() 요청의 경로를 재지정 한다.
res.render() 보기 템플리트를 렌더링한다
res.send() 다양한 유형의 응답을 전송한다.
res.sendFile() 파일을 스트림형태로 전송한다
res.sendStatus() 응답 상태코드를 설정 한 후 해당 코드를 문자열로 표현한 내용을 전송한다.

express.Router

express.Router 클래스를 사용하면 모듈식 핸들러를 작성할 수 있다. Router 인스턴스는 미들웨어이자 라우팅 시스템이라 "mini-app"이라고 불리는 경우가 많다.

const express = require('express');
const router = express.Router();

// middleware that is specific to this router
router.use(function timeLog(req, res, next) {
  console.log('Time: ', Date.now());
  next();
});
// define the home page route
router.get('/', function(req, res) {
  res.send('Birds home page');
});
// define the about route
router.get('/about', function(req, res) {
  res.send('About birds');
});

module.exports = router;

이후 app.js에서 다음과같이 라우터 모듈을 불러와야한다.

app.use('/birds', require('./birds');

출처 : Express 라우터

profile
Clean Code & Clean Architecture

0개의 댓글