패스트캠퍼스 작심 30일 챌린지 26일차.
25일차 강의를 통해 미들웨어의 개념을 어느정도 알았을 것이다.
오늘은 25일차 소스코드를 개선하여 Rest API를 작성하고 Express에서 지원하는
라우터의 기능에 대해 학습하였다.
라우터에 대해 알아보기 전에 아래 소스코드에서 '/'는 URL Path인 것을 지난 시간에 배웠다.
app.use('/', (req, res, next) => { ... })
이 Path에 대해 Express는 다양한 Express Path Pattern을 지원하고 있다.
Path Pattern에 대해 간략히 알아보자.
<Express Path Patter>
- /ab?cd : acd 또는 abcd로 접속 가능
- /ab+cd : abcd, abbcd, abbbcd, abbbbbbbbbbcd 접속 가능
- /ab*cd : * 자리에 무엇이 들어와도 상관 없음, ab로 시작 ~ cd로 끝
- /a(bc)?d : ad, abcd 가능 abd 불가능
- regex 사용 가능
- 배열 사용 가능 ['/abc', '/xyz'/']
이처럼 다양한 URL Path를 핸들링할 수 있도록 Express Path Pattern을 제공한다.
조금 더 자세히 알고 싶으면 Express Document를 참고하길 바란다.
그럼 라우터(Router)는 무엇일까?
라우터는 일종의 미들웨어로, 클라이언트 요청에 응답하는 방식을 의미한다.
클라이언트가 특정 URL로 접근할 경우 그 요청을 처리하기 위한 함수로 요청을 전달해준다.
const userRouter = express.Router()
app.use('/users', userRouter)
userRouter.param('id', (req, res, next, value) => {
// :id로 인해 ID 값을 여기서 value로 받고
// id에 대한 처리 후 next()로 '/:id' 함수 마저 처리한다
console.log(value)
next()
})
// :붙으면 Path Parameter
userRouter.get('/:id', (req, res) => {
res.send(req.user) -> JSON 객체를 Stringify해서 전달
})
먼저 Express에서 Router를 가져오고,
'/users'로 시작하는 URL로 접근할 때만 Router를 동작시키는 소스코드이다.
여기서 중요한 점은 ':id'가 Request Parameter를 의미하는데,
userRouter.get('/:id'...)를 통해 Request를 받으면 userRouter.param('id'...)의 함수를 호출하여
id라는 파라미터를 처리하고, 파라미터 처리가 끝나면 다시 userRouter.get('/:id'...)로 돌아와
응답을 보내준다.
지난 시간에 배운 Middleware가 이렇게 적용되어 효율적으로 데이터를 처리할 수 있게 되는 것이다.
(오늘은 여기서 끝!)
[오늘의 학습통계]
- 패스트캠퍼스 URL : https://bit.ly/37BpXiC
* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'Web > Node.JS' 카테고리의 다른 글
[패스트캠퍼스 챌린지 28일차] Express - Pug Template (0) | 2021.10.03 |
---|---|
[패스트캠퍼스 챌린지 27일차] Express - Pug Template (0) | 2021.10.02 |
[패스트캠퍼스 챌린지 25일차] Express - Middleware (0) | 2021.09.30 |
[패스트캠퍼스 챌린지 24일차] Express - 소개 (0) | 2021.09.29 |
[패스트캠퍼스 챌린지 23일차] NodeJS - 백엔드 Part 1 마무리 (0) | 2021.09.28 |