#4.2 Cleaning the Code

jini.choi·2022년 6월 30일
0

유튜브 클론코딩

목록 보기
14/27

라우터 정리하기

  • 파일들은 각각 독립된 것들을 구축하기 때문에 모든 파일은 모듈이고 거품과도 같다.
    그렇기 때문에 한 파일 안에서도 돌아가는 환경을 코드로 만들어야 한다.
    (파일 안의 변수는 항상 보내주고(export) 받아와야한다.(import))
  1. 컨트롤러와 라우터 나누기
  • 모든 파일은 분리된 모듈
  1. server.js에 있는 아래 소스 router js파일에 잘라내기
const globalRouter = express.Router();

const handleHome = (req, res) => res.send("Home");

globalRouter.get("/", handleHome);
  1. router js에서 import express하기
  • js는 각자 자기 세계를 가짐.
  • 이미 server.js에 express를 import했어도 globalRouter에서 새로 experss를 import해줘야함
  1. 디폴트(default) 글로벌 라우터를 export(변수를 export)

code

server.js

import express from "express";
import morgan from "morgan";
import globalRouter from "./routers/globalRouter";
import userRouter from "./routers/userRouter";
import videoRouter from "./routers/videoRouter";

const PORT = 4000;

const app = express();

//application설정
const logger = morgan("dev");

app.use(logger);

app.use("/", globalRouter);
app.use("/users", userRouter);
app.use("/videos", videoRouter);

//외부 접속 listen
const handleListening = () =>
  console.log(`✅ Server listening on port http://localhost:${PORT} 🚀`);
app.listen(PORT, handleListening);

videoRouter.js(golbal, user 동일)

import express from "express";

const videoRouter = express.Router();

const handleWatchVideo = (req, res) => res.send("Watch Video");

videoRouter.get("/watch", handleWatchVideo);

export default videoRouter;
  1. 유저가 "/videos"로 시작하는 url에 들어가면(server.js)

  2. experss는 비디오 라우터 안에 들어감(videoRouter.js)

  3. 그 다음 비디오 라우터에서 express는 url의 나머지 주소를 찾음(videoRouter.js)

  4. 만약 url이 "/video/watch"로 들어가면 비디오 라우터로 들어감 그리고 라우터 안에서 /watch를 찾음(videoRouter.js)

profile
개발짜🏃‍♀️

0개의 댓글