자바스크립트를 허용해주세요.
[ 자바스크립트 활성화 방법 ]
from Mohon Aktifkan Javascript!
 

[Express] 6장 라우터 분리

728x90

✅ 1. 라우터(Router)란?

Express(익스프레스)에서 라우터를 분리하는 이유는 크게 유지보수와 확장성을 위해 라우터를 분리합니다. 즉 프로젝트가 커질수록 모든 라우트를 app.js에 넣으면 혼란스러워지기에, 기능별로 파일을 분리하는 것이 좋습니다. 라우터의 개념은 다음과 같습니다.

  • URL 경로와 HTTP 메서드를 정의하는 모듈
  • 요청이 들어오면 어떠한 컨트롤러(로직)을 실행할지 결정함
  • Express에서는 express.Router()를 사용해 라우터를 만듬
const express = require("express");
const router = express.Router();
const app = express();

router.get("/hello", (req, res) => res.send("Hello"));

app.use("/", router);

app.get("/", (req, res) => {
  res.send("Hello World");
});

app.listen(3000, () => {
  console.log("Server is Running http://localhost:3000");
});

 ✅ 2. 컨트롤러(Controller)

컨트롤러(Controller)는 라우터에 호출되는 실제 로직을 담당하고 데이터 처리나,DB 접근, 응답 생성 등을 수행합니다.

// controllers/helloControllers.js
const sayHello = (req, res) => {
  res.send("Hello from Controller!");
};

module.exports = sayHello;
// routes/hello.js
const express = require("express");
const sayHello = require("../controllers/helloController");
const router = express.Router();

router.get("/hello", sayHello);

module.exports = router;
// app.js
const express = require("express");
const helloController = require("./routes/hello");
const app = express();

app.use("/", helloController);

app.listen(3000, () => console.log("Server running is port 3000"));

 


✅ 3. MiddleWare 적용

미들웨어는 요청과 응답 사이에서 공통 로직을 처리합니다, next()를 사용해 호출해야 다음 라우터/컨트롤러를 진행합니다.

// middles/logger.js
const logger = (req, res, next) => {
  console.log(`${req.method} ${req.url}`);
  next();
};

module.exports = logger;
// app.js
const express = require("express");
const logger = require("./middles/logger");
const app = express();

app.use(logger); // 모든 요청 로그 확인

app.get("/text", (req, res) => {
  res.send("MiddleWare test");
});

app.listen(3000, () => console.log("Server is running 3000"));
  • 브라우저 -> /test 접속
  • 브라우저에 MiddleWare test 표시 확인

 

 

GitHub - Koras02/express-bloging: https://thinky.tistory.com/category/Back-End/Express

https://thinky.tistory.com/category/Back-End/Express - Koras02/express-bloging

github.com

 

728x90
LIST

'Back-End > Express' 카테고리의 다른 글

[Express] 5장 에러 처리  (1) 2025.08.22
[Express] 4장 정적 파일 제공  (4) 2025.08.16
[Express] 3장 - 미들웨어 적용  (1) 2025.08.13
[Express] 2장 - 라우팅 구현  (4) 2025.08.11
[Express] 1장 Express란 무엇인가  (3) 2025.08.10