(작성중인 게시글입니다.)



참고 자료


Nomad Coders의 Youtube clone 강의를 참고하였습니다.




1. router란?



라우터(router)는 클라이언트의 요청 경로(path)를 보고 해당 요청을 처리할 수 있는 곳으로 기능을 전달해주는 역할을 한다.




2. url을 정리하는 방식 예시



중복되는 경로끼리 잘 묶어준다. 사용 의도에 따라 url은 줄여줄 수 있다.
ex) naver.com/users/login -> naver.com/login

[global router]
/
/home
/login

[user router]
/user
/user/profile

[contents router]
/contents
/contents/:id
/contents/:id/edit


+) 여기서 궁금한 점, URL과 URI의 차이는?
URI > URL의 관계이다.
참고 블로그: 찰스의 안드로이드

  • URI: 특정 리소스를 식별하는 역할을 하여 고유한 문자열 시퀀스를 지닌다.
  • URL: 웹 주소를 뜻 한다. 웹 상에서 리소스가 어디에 있는지 알려주기 위한 규약이다.




3. express에서의 router 설정법



express를 통해 간단하게 라우터 생성이 가능하다.

const globalRouter = express.Router();

const handleLogin = (req, res) => res.send("Login");

globalRouter.get("/login", handleLogin;

app.use("/", globalRouter);

// 생성된 라우트 예시) https://hyeonnii.com/logins

4. 아키텍처



- conterollers
  |__ globalController.js
  |__ userController.js
  |__ contentController.js
- routers
  |__ globalRouter.js
  |__ userRouter.js
  |__ contentRouter.js
- server.js




+) exportexport default의 차이

  • export: 한 파일에서 복수의 요소를 내보낼 수 있다.
//  export
export handleHome = () => {console.log('Home')};

//  imports
import { handleHome } from "./controllers/globalController";



  • export default: 한 파일에서 하나만 내보낼 수 있다.
//  export
export default globalRouter = express.Router();

//  import
import globalRouter from "./routers/globalRouter";




5. URL 파라미터



to be continue…