Routing과 Router 이해

이정기·2022년 12월 14일
0

TIL

목록 보기
40/71
post-thumbnail

Routing 이란?

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

조건에 -> 응답 빙식!

Router

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

요청을 처리 하는 Express.js 기본기능!

Router 구조

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

Router 사용

기본경로 /

const express = require('express');     //express 프레임워크를 변수에 넣는다.
const app = express();                  //express 실행 후 app 객체를 만들어준다.
const port = 3000;                      //3000번 포트 설정
const goodsRouter = require('./routes/goods.js') //goods.js 를 가져온다.

//get 메서드로 api 를 실행시킨다.
app.get('/', (req, res) => {            
  res.send('Hello World!');
});

//api 경로가 추가 된 경우 모두 goodsRouter 로 통해서 간다.
app.use("/api", goodsRouter)            

//실제로 서버를 실행하는 부분. app 객체를 통해서 3000번 포트로 접속했을 때만, 서버가 실행된다.
app.listen(port, () => {                
  console.log(port, '포트로 서버가 열렸어요!'); 
});

routes 폴더안에 js 파일을 만들어서 연결해주기.
/api/ 경로

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

//express.Router 함수를 router 변수에 할당
//API를 만들거나 Router 을 사용할 때 해당 변수를 사용한다.
const router = express.Router();       

//반환받을 router 를 각각 만든다.
// 기본경로('localhost:3000/api/')로 들어왔었을 때(중요!), res.send 반환
router.get('/',(req, res) => {
    res,send("defaul url for goods.js GET Method")
})

// 'localhost:3000/api/about' 경로로 들어왔을 때, res.send 반환
router.get('/about', (req,res) => {
    res.send("goods.js about PATH")
})

//app.js에서 사용한 experss 는 객체 안의 get을 사용한것이기 때문에 라우터를 설정할 필요 없었는데
//goods.js 파일 안에 있는 라우터를 app.js에 가져다 주어야한다.

//app.js로 전달 방식
module.experss = router;

기본 경로 주석 처리 후 실행시

localhost:3000/ 해당 문서를 찾을 수 없다고 나옴.
localhost:3000/about 입력시 제대로 작동
localhost:3000/api/ 입력시 제대로 작동
localhost:3000/api/about 입력시 제대로 작동

profile
Node.js 로 꿈을 꾸었다..

0개의 댓글