반응형

하나의 router.ts 파일에 모든 route 코드가 들어있으면 한 파일에서 관리하기는 쉬우나 가독성이 매우 떨어진다.

 

따라서 서비스 별 route를 분리해주는 방법을 확인해보자.

 

 

🟢 a service가 있다고 가정

 

이때 routers/a.ts 파일을 만들어 a 서비스에 대한 라우트를 정의

 

import { Router, Request, Response } from 'express';

const router = Router();

// 예시 라우트
router.get('/', (req: Request, res: Response) => {
  res.send('Hello from a service');
});

export default router;

 

🟢 root 파일이 되는 router.ts에서 모듈 가져오기

 

import { Router } from 'express';
import aRouter from './routers/a';

const router = Router();

// 기본 루트
router.get('/', (req, res) => {
  res.send('Hello from the main router');
});

// /a 경로에 대한 라우트
router.use('/a', aRouter);

export default router;

 

 

위와 같이 작성하면 router.ts 파일은 a 서비스의 라우트와 메인 라우트를 모두 관리하게된다.

 

/a로 요청이 들어오면 aRouter 모듈의 라우트를 처리하고, 다른 모든 경로에 대한 요청은 메인 라우터에서 처리된다.

반응형