[Express] Router 폴더 ?

Yoon·2024년 1월 31일
0

node.js

목록 보기
8/8

0. 라우터란?

라우터는 간단하게 설명하면 '연결 장치' 이다.
server.js 한 파일에서만 런칭할 수 있는 것이 아닌 router라는 것을 이용해서 여러가지 .js파일에다가 원하는 코드를 짤 수 있다는 것이다.

router를 이용하는 이유는 코드의 간략화 + 가독성 때문이다.
server.js 하나에 다 욱여 넣으면 길이도 길어지고 그러므로 가독성이 떨어진다.

유튜브를 예를 들자면 보관함, 시청기록, 오프라인 동영상(다운로드한 동영상)을 이동할 때
각각의 이름으로 링크를 만드는 게 아니라,
www.youtube.com/feed/library
www.youtube.com/feed/history
www.youtube.com/feed/downloads

이렇게 feed 라는 단어 뒤에 달라지는 글자에 따라서 홈페이지 경로가 달라지는데,

보관함을 user-video-storage,
시청기록을 user-a-viewing-recode,
오프라인 동영상을 user-offline-save-video
이렇게 만들면 너무 복잡하고 보기에도 안 좋고 각각의 페이지들을 따로 만들어야 하니까

라우터(라우팅)을 이용해서 홈페이지를 대분류 - 중분류 - 소분류식으로 나누는 작업을 말한다.


1. 라우팅 처리 형식

app.METHOD(PATH, HANDLER)
 · app: express의 인스턴스
 · METHOD: HTTP 요청 메소드(GET, POST)
 · PATH: 서버에서의 경로
 · HANDLER: 라우트(Route)가 일치할 때 실행되는 함수

2. app.use() 함수

app.use() 함수는 Express 앱에서 항상 실행하는 미들웨어의 역할을 한다.

  • app.use는 지정된 경로에 지정된 미들웨어 함수를 마운트하는데 사용합니다.
  • 모든(또는 특정) 요청에 대한 공통 로직을 처리하기 위해 사용할 수 있습니다.
  • 주로 애플리케이션에 대한 미들웨어를 설정하는데 사용됩니다. (모듈식 라우터, 에러 핸들링, 공통 미들웨어, .. 등)
# app.use() 기본 문법
app.use(path, callback)
 · path: 미들웨어 함수가 호출되는 경로입니다. 경로, 경로패턴 또는 경로와 일치하는 정규식 패턴을 나타내는 문자열일 수 있습니다.
 · callback: 미들웨어 함수 또는 미들웨어 함수의 시리즈/배열입니다.

# 모든 요청에 대한 핸들링 : 경로(path)를 지정하지 않는 경우 모든 요청에 대한 공통 핸들링을 지정할 수 있습니다.
app.use(function (req, res, next) {
  console.log('Time:', Date.now());
  next();
});

# 특정 요청에 대한 핸들링
app.use('/admin/:id', function(req, res, next) {
  // 관리자 권한 체크
  next();
}
profile
나의 공부 일기

0개의 댓글