노드 입문_7

·2022년 12월 13일
0

Routing

클라이언트의 요청 조건(메서드, 주소 등)에 대응해 응답하는 방식

  • router란?
    클라이언트의 요청을 쉽게 처리할 수 있게 도와주는 Express.js 기본 기능 중 하나

Router의 구조
router.METHOD (PATH, HANDLER);

  • router: express의 라우터를 정의하기 위해 사용
  • METHOD: get, post, put, delete ...
  • PATH: 실제 서버에서 API를 사용하기 위한 경로
  • HANDLER: 라우트가 일치할 때 실행되는 함수

router 사용해보기

routes/goods.js

// routes/goods.js

//express라는 라이브러리를 express라는 변수에 할당 
const express = require('express'); 

//express.Router라는 함수를 실행해서 router라는 변수에 할당
const router = express.Router();


// localhost:3000/api/ GET
router.get('/',(req, res) => { 						// 반환받은 router란 변수를 이용해서 기본경로에 들어왔을 때 해당 코드 실행
    res.send("default url for goods.js GET Method"); // default..라는 문자열을 반환
});

// localhost:3000/api/about GET
router.get('/about',(req, res) => {
    res.send("goods.js about PATH")
});

// 작성한 Router를 app.js에서 사용하기 위해 하단에 내보내주는 코드
//router라는 변수를 module.exports를 통해서 밖으로 내보냄
module.exports = router; 

app.js

// app.js

// 외부 모듈의 기능을 가져옴 (./ 는 상대경로)
const goodsRouter = require("./routes/goods");

// 기본 url 뒤에 .api가 추가 될 경우 goodsRouter라는 라우터로 가라는 뜻
//req.body를 사용하기 위한 미들웨어 (전역 미들웨어에 적용)
// localhost:3000/api -> goodsRouter
app.use("/api", [goodsRouter]);
  • 여러 개의 파일에서 가져올 경우 배열로서 선언 가능
    app.use("/api", [goodsRouter, userRouter]);
  • 미들웨어(Middleware)란?
    웹 서버에서 요청을 받을 때 모든 요청에 대해 공통적인 처리를 하고싶은 경우, 웹 서버의 요청/응답에 대해 공통적으로 관리 가능
profile
개발자가 되는 과정

0개의 댓글