[서버 week_2] 발전과제 라우팅

폴더 구조는 다음과 같다

  • src
    index.ts
    • api
      index.ts
      blog.ts
      user.ts

src/index.ts -> src/api/index.ts -> src/api/blog.ts 순서로 실행된다


src/index.ts
app.use('/api', require('./api'));

src/api/index.ts

router.use('/user', require('./user'));

router.use('/blog', require('./blog'));

src/api/blog.ts
const router : Router = express.Router();

router.get('/', (req: Request, res: Response) => {
    res.send('<h2> 블로그 </h2>');
});

이렇게했을 경우 라우터가 많아지면 관리하기가 어렵다. 예를 들어서 /api/user로 get 요청이 들어왔을 때 user.ts 파일로 가는게 아니라 userList.ts 파일로 가게 만들고 싶다고 하면 api/index.ts 파일에서 해당 라우터를 찾아서 직접 바꾸어 줘야 한다 이는 매우 번거로운 작업이다(맞나...?)

따라서 다음과 같이 바꾸었다 일단 폴더 구성은 다음과 같다


  • src
    index.ts
    • api
      index.ts

      • routers
        blog.ts
        user.ts

src/index.ts
const apiRouter = require('./api')
app.use('/api', apiRouter);

src/api/index.ts

const userRouter = require('./user')
const blogRouter = require('./blog')

router.use('/user', userRouter);
router.use('/blog', blogRouter);

src/api/blog.ts -> src/api/routers/blog.ts 로 위치만 변경 내용은 동일함


이렇게하면 api/index.ts 파일의 blogRouter를 찾아서 바로 변경만 해주면 간편하게 라우터를 변경할 수 있다

이렇게 변경하는게 맞는진 모르겠으나..일단해봄

참고자료
https://devent.tistory.com/136
https://lgphone.tistory.com/76

좋은 웹페이지 즐겨찾기