API는 같은 주소지만 HTTP 메소드를 다르게 하여 다양한 기능을 할 수 있습니다.
동일한 주소를 하나로 묶어서 관리할 수는 없을까요?
두 가지 예제를 보면서 알아보겠습니다.
app.get('/event/:n', (req, res) => {
// n회차 이벤트 당첨자 출력
});
app.post('/event/:n', (req, res) => {
// n회차 이벤트 당첨자 생성
});
app.put('/event/:n', (req, res) => {
// n회차 이벤트 당첨자 수정
});
app.delete('/event/:n', (req, res) => {
// n회차 이벤트 당첨자 삭제
});
매우 직관적인 단일 라우트 방식입니다.
동일한 경로에 대한 처리이다 보니 반복되는 코드가 많습니다.
그럼 동일한 경로를 관리할 때, 어떤 방법이 있을까요?
app.route('/event/:n')
.get((req, res) => {
// n회차 이벤트 당첨자 출력
})
.post((req, res) => {
// n회차 이벤트 당첨자 생성
})
.put((req, res) => {
// n회차 이벤트 당첨자 수정
})
.delete((req, res) => {
// n회차 이벤트 당첨자 삭제
})
공식 사이트에서는 위 예제와 같은 솔루션을 제안합니다.
동일한 주소로 하나의 객체를 생성한 후 각 메소드로 체이닝하여 작성합니다.
보기에도 가독성이 좋아지지 않았나요?
개발을 하면서 중복 코드를 제거하기 위해 고민하는 일은 큰 도움이 된다고 생각합니다.
이번 시간에는 공식 사이트에서 제공하는 솔루션으로 해결하고자 했습니다.
하지만, 로직이 길어지면 한 눈에 파악하기 힘들어 체이닝 방식도 고민을 한 후 사용해야 한다고 느꼈습니다.
이번 포스트는 여기까지입니다.
틀린 내용이 있다면 지적 부탁드립니다. 감사합니다!
'JavaScript' 카테고리의 다른 글
[Express] 유효성 검사를 해보자 (1) | 2024.09.24 |
---|---|
[Express] Router 적용하기 (0) | 2024.09.10 |
[Express] 폴더 구조 알아보기 (0) | 2024.09.03 |
함수를 생성하는 여러가지 방법 (0) | 2024.09.03 |
Express - Path에 매개변수 사용하기 (1) | 2024.09.02 |