
const express = require("express");
const app = express();
const userRouter = require("../routes/User");
const channelRouter = require("../routes/Channel");
app.use(express.json());
app.use("/", userRouter);
app.user("/", channelRouter);
app.listen(3334, console.log("3334번 포트에서 서버가 실행중입니다."));
const router = express.Router();
router.use(express.json());
module.exports = router;
메인 서버(app.js)의 변화: app.use()의 역할
기존에 한 파일에 모든 기능을 넣었던 방식에서, 라우터 파일을 분리하면서 app.js는 "길잡이" 역할을 하게 되었음.
require를 통해 분리된 User.js와 Channel.js 파일을 가져옴.app.use()를 통한 연결pp.use("/", userRouter)는 "앞으로 들어오는 모든 요청(/) 중에서 userRouter에 정의된 경로가 있다면 그쪽으로 보내줘"라는 의미express.json(): 클라이언트가 보낸 JSON 데이터를 서버가 읽을 수 있도록 변환해주는 설정입니다.라우터 파일(routes/*.js)의 핵심 코드 설명
라우터 파일 내부에서는 express.Router()를 사용하여 작은 단위의 설계도를 그림
express.Router()express 전체 객체가 아닌 라우팅 기능만 따로 떼어온 객체, 이를 통해 기능을 모듈화할 수 있음module.exports = router: 이 코드가 가장 중요합니다. 파일 안에서 정의한 router 객체를 외부(app.js)에서 사용할 수 있도록 밖으로 내보내는 역할을 함:id): router.get("/user/:id", ...) 처럼 사용하며, URL을 통해 들어오는 동적인 값을 req.params.id로 받아와서 처리할 수 있게 합니다.관심사 분리 (Modularization)
app.js는 전체 경로를 안내하는 '지도' 역할만 하고, 실제 상세 로직은 기능별(User, Channel) '전문 라우터' 파일로 나눠서 관리
Express Router 활용
express.Router()를 통해 독립적인 미니 설계도를 만들고, module.exports로 내보내어 코드의 재사용성과 가독성을 높임