Node 강의/입문

1-11 Roution 이해 및 Router 학습

kagan-draca 2024. 9. 1. 18:20

Routing 이해 및 Router 학습

 

1. Routing이란?

 

Routing은 클라이언트의 요청 조건(Http 메서드, 주소 등)에 대응해 응답(Response) 하는 방식을 말합니다.

 

2. Router란?

 

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

 

- Router 구조

 

router : Express.js의 라우터를 정의하기 위해 사용합니다.

 

METHOD : HTTP Method를 나타냅니다 ex) get, post, put, delete

 

PATH : 실제 서버에서 API를 사용하기 위한 경로 ex) users, posts...

 

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

 

3. Router 사용해보기

 

 

routes 폴더 생성해 goods.js라는 파일을 생성합니다.

express에서 제공되는 Router 함수를 사용해 Express Router를 생성합니다.

 

import express from "express";
//routes/goods.js
import goodsRouter from "./routes/goods.js";
const app = express();
// Express.js의 라우터를 생성합니다.
const PORT = 3000;

 

그리고 예시로 엔디포인트를 작성해보겠습니다.

 

// localhost:3000/api/ GET
router.get("/", (req, res) => {
  // "/"는 기본 url이 입력 되면
  // 아래의 로직을 실행시키겠다는 의미 입니다.
  res.json("default url for goods.js GET Method");
});

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

 

작성한 Router를 app.js에서 사용하기 위해 하단에 내보내주는 코드를 추가합니다.

export default router;
// 작성한 Router를 외부에서 사용하기 위해
// 내보내줍니다.

 

goods.js 파일에서 노출된 Router를 미들웨어에 사용하겠다고 작성합니다.

→ 이렇게 하면, routes/goods.js 파일은 외부 파일에서 라우트(Route)로 사용될  수 있습니다.

 

app.use("/api", [goodsRouter]);
// app.use는 api라는 주소들어오게 되면
// goodsRouter안의 함수들을 조회하라
// 라는 명령어 입니다.

 

이제 http://localhost:3000/뒤에 /api로 시작되는 주소는 routes/goods.js에 있는

Router 미들웨어를 통해 처리됩니다.

 

그래서, 

 

http://localhost:3000/ 의 결과는

이지만,

 

http://localhost:3000/api 의 결과는

 

app.use("/api", [goodsRouter]);

 

use함수의 "/api" 경로를 입력할 경우

[goodsRouter] goodsRouter함수를 실행시키겠다

적어놨기 때문에

 

 

routes 폴더 안 goods.js의 

router.get("/",(req,res)=>{

 

})

get 함수에 의해 "/api"의 기본 url("/(빈 내용)")이 동작해

 자원(res)가 json 파일 형식으로

"default url for goods.js Get Method" 라고 

출력될 것 입니다.

 

만약, 

 

http://localhost:3000/api/about 라고 URL에 입력한다면,

 

app.use("/api", [goodsRouter]);

 

위와 마찬가지로 use에 의해

goodsRouter 함수가 동작할 것이고,

router.get("/about", (req, res) => {
  res.json("goods.js about PATH");
});

 

라우터 함수 중 "/about"이 동작해

 

자원(res)가 json 파일 형식으로

 "goods.js about PATH"가 

 

출력될 것 입니다.

 

'Node 강의 > 입문' 카테고리의 다른 글

1-13 Request와 Response  (0) 2024.09.01
1-12 API Client 학습  (0) 2024.09.01
1-10 API와 REST API 개념  (0) 2024.09.01
1-9 ES6 Module 시스템 알아보기  (0) 2024.08.30
1-8 Express.js로 백엔드 서버 구현  (0) 2024.08.30