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 |