라우팅


URI, HTTP 요청 메소드인 특정 엔드포인트에 대한 클라이언트 요청에 애플리케이션이 응답하는 방법을 결정하는 것 , 각 라우트는 하나 이상의 핸들러 함수를 가질 수 있으며, 이러한 함수는 라우트가 일치할 때 실행됨

구조 : app.METHOD(path,handler)

app : express 인스턴스

METHOD : HTTP 요청 메소드

path : 서버에서의 경로

handler : 라우트가 일치할 때 실행되는 함수

ex) 기본적인 라우팅

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

app.get("/",function(req,res){
  res.send("home");
});

app.route() : app.route()를 이용하면 라우트 경로에 대하여 체인 가능한 라우트 핸들러를 작성할 수 있음

경로는 한 곳에 지정되어 있으므로, 모듈식 라우트를 작성하면 중복성과 오타가 감소

ex)

app.route("/menulist")
  .get(function(req,res){
    res.send("read menulist");
  }
  .post(function(req,res){
    res.send("add new menu");
  }
  .put(function(req,res){
    res.send("edit menu");
  }

express.router : express.router 클래스를 사용하면 모듈식 마운팅 가능한 핸들러를 작성할 수 있음

router 인스턴스는 완전한 미들웨어이자 라우팅 시스템이어서 mini-app이라고 불릴정도

ex)

// text.js
const express = require("express");
const router = express.Router();

router.use(function text(req,res,next){
  console.log("text");
  next();
});

router.get("/",function(req,res){
  res.send("hello");
});

router.get("/about" ,function(req,res){
  res.send("hello world");
}) 

module.exports = router;