Express Router 활용하기

express의 Router를 활용하여 서버의 Router 구조를 잡을 수 있습니다.
처음 구조를 잘 잡아야 추후 프로젝트의 폴더 구조 및 개발의 편의성이 늘어난다고 생각합니다.

기존 네이버 api를 통해 router를 구상했습니다.
이렇듯 귀찮음을 해결해 줄 수 있는게 Router입니다.

기존의 구조에서 src 폴더에 routers를 추가해줍니다. 그 안에 index.js와 product.js를 추가해줍니다.

product.js의 코드

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

router.get("/", (req, res, next) => {
  res.send("hi");
});

module.exports = router;

api method 중 get을 통해서 테스트 해보겠습니다.

index.js의 코드

const router = require("express").Router();
const products = require("./product");

router.use("/products", products);

module.exports = router;

index.js에서는 router들을 모아주고 관리하게 만들어줍니다.
추후에 다른 api 주소가 필요하면 index.js에서 선언해주고서 관리하면 됩니다.

app.js의 코드

const express = require("express");

const app = express();

app.set("PORT", process.env.PORT || 4190);

const api = require("./routers");

app.use("/api", api);

app.listen(app.get("PORT"), () => {
  console.log(`listen on localhost:${app.get("PORT")}`);
});

기존과 다르게 api를 변수로 선언하고 routers에서 가져옵니다.
여기서 주의할 것은 "./routers"로 끝내면 index.js를 불러옵니다.

그리고 src 폴더 밖에 api.http 파일을 만듭니다.

api.http

http://localhost:4190/api/products

router.get("/", (req, res, next) => {
  res.send("hi");
});

코드 위에 Send Request를 누르면 기존의 product.js에서 HTTP/1.1 200 OK라는 메세지와 hi라는 메세지가 나오는 것을 확인할 수 있습니다.

오늘은 api를 활용하여 서버의 router 구조를 구축해봤습니다. 라우터를 활용하여 전체적인 구조를 한눈에 보기 쉽게 관리할 수 있고, 귀찮은 api의 길이를 줄인다는 장점이 있습니다.

좋은 웹페이지 즐겨찾기