JavaScript/JS백엔드

[Express] 라우터

염두리안 2025. 1. 14. 00:16
728x90
반응형

라우트 중복 제거하기

  • app.route() 사용
// app.route('경로명')
app.route('/products')
  .get((req, res) => {
  res.json({ message: 'Product 목록 보기' });
  })
  .post((req, res) => {
    res.json({ message: 'Product 추가하기' });
  });

이랬는데 요래 됏슴당

 

라우터 만들기

  • express.Router() 사용(마무리로 app.use() 사용)
const productRouter = express.Router();

productRouter.route('/products')
  .get((req, res) => {
  res.json({ message: 'Product 목록 보기' });
  })
  .post((req, res) => {
    res.json({ message: 'Product 추가하기' });
  });
  
  app.use(productRouter);
  
  // 위 코드를 조금 더 간결하게...
const productRouter = express.Router();

productRouter.route('/:id')
  .patch((req, res) => {
    res.json({ message: 'Product 수정하기' });
  })
  .delete((req, res) => {
    res.json({ message: 'Product 삭제하기' });
  });
  
app.use('/products', productRouter);

 

라우터 레벨 미들웨어

  • app.use()를 사용할 때 앱 전체가 아닌, 특정 라우트에만 미들웨어 적용 가능 ~> 특정 권한, 조건에서 접근 가능하게 하고 싶을 때 사용
productRouter.use((req, res, next) => {
  console.log('Product Router 항상 실행');
  next();
})

 

Express 프로젝트 구조와 모듈화

  • 정답은 없지만 그냥 기능같은 걸로 나눠서 저장하기,,,

 

728x90
반응형