URL 경로
에 따라 요청을 분기 처리하는 구조
Express에서는 express.Router() 를 사용해서 기능을 모듈로 분리함
📁 project/
├── app.js
└── routes/
└── contactRoutes.js
const express = require("express");
const app = express();
app.use(express.json()); // 미들웨어 등록
// /contacts 경로에 대해 routes/contactRoutes.js 사용
app.use("/contacts", require("./routes/contactRoutes"));
app.listen(3000, () => {
console.log("서버 실행 중..");
});
const express = require("express");
const router = express.Router();
// GET /contacts/
router.get("/", (req, res) => {
res.send("연락처 목록");
});
// POST /contacts/
router.post("/", (req, res) => {
const { name, email } = req.body;
if (!name || !email) {
return res.status(400).send("필수 항목 누락");
}
res.send("연락처 등록 완료");
});
// GET /contacts/:id
router.get("/:id", (req, res) => {
res.send(`${req.params.id}번 연락처 조회`);
});
module.exports = router;
| 개념 | 미들웨어 | 라우터 |
|---|---|---|
| 목적 | 요청/응답 사이에서 가공 또는 검사 수행 | URL 경로에 따라 요청을 분기 |
| 사용 위치 | app.use() 또는 router.use() |
app.get(), router.post() 등으로 정의 |
| 예시 | 로그인 검사, 로그 기록, body 파싱 등 | /contacts, /users/:id 등 처리 |
| 흐름 제어 | next()를 호출해야 다음 미들웨어로 이동 |
내부에서 응답 (res.send) 처리 후 종료 가능 |