인프런 커뮤니티 질문&답변

노강표님의 프로필 이미지

작성한 질문수

풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)

routes 정의

강의내용 질문

해결된 질문

22.01.05 12:54 작성

·

147

0

강의 7:01 부분의 16번쨰 코드내용에대한 질문입니다!

노드js는 처음이라서 우선 강의따라 흐름만 이해하면서 듣고있습니다!

16번쨰줄의 내용이 서버가 실행될때 forEach로 순회하면서 messagesRoute에서 정의한 메서드들을 실행하는 내용같은데,

작성된 문법이라면 현재 url외의 메서드들도 순회하면서 전부 실행 시키는 중인가요??

답변 2

0

노강표님의 프로필 이미지
노강표
질문자

2022. 01. 05. 17:02

현재 url이라고 말씀드린건 브라우저에 url요청을 보낼때의 url을 의미했습니다!!

그럼  express()로 서버를 만들어 app에 저장하고 node index.js로 서버를 구동시키면

app[method](route,handler)  <- 이 형태로 등록된 코드를 읽으면서 감시자를 등록한다고 이해하는게 맞을까요?? 

정재남님의 프로필 이미지
정재남
지식공유자

2022. 01. 05. 17:07

맞습니다!

노강표님의 프로필 이미지
노강표
질문자

2022. 01. 05. 17:56

답변감사합니다!!

0

정재남님의 프로필 이미지
정재남
지식공유자

2022. 01. 05. 13:37

'현재 url'이라는게 어떤걸 말씀하시는지 잘 모르겠습니다.

16~18번째줄의 코드는 풀어쓰면 다음과 같습니다.

1) app.get('/messages', (req, res) => { ... })
2) app.post('/messages', (req, res) => { ... })
3) app.put('/messages/:id', (req, res) => { ... })
4) app.delete('/messages/:id', (req, res) => { ... })

이들은 '실행시키는중'이라기보다,
브라우저에서의 '이벤트 핸들러' 등록 개념으로 이해하시면 좋을 것 같네요.
어떤 url로 어떤 메서드의 요청이 들어오면,
해당 handler를 실행해주게끔 '감시'를 하는 차원입니다.

사용자가 '/messages' 로 'get' 요청             => 서버에서 1)의 `(req, res) => { ... }` 를 호출함.
사용자가 '/messages' 로 'post' 요청           => 서버에서 2)의 `(req, res) => { ... }` 를 호출함.
사용자가 '/messages/:id' 로 'put' 요청      => 서버에서 3)의 `(req, res) => { ... }` 를 호출함.
사용자가 '/messages/:id' 로 'delete' 요청 => 서버에서 4)의 `(req, res) => { ... }` 를 호출함.

이렇게 놓고 보면 다음과 비슷하죠!

const $app = document.getElementById('app')

1) $app.addEventListener('click', () => { ... })
2) $app.addEventListener('mouseenter', () => { ... })
3) $app.addEventListener('mouseleave', () => { ... })

사용자가 $app을 'click'              => 브라우저가 1)의 `() => { ... }` 를 호출함.
사용자가 $app을 'mouseenter' => 브라우저가 2)의 `() => { ... }` 를 호출함.
사용자가 $app을 'mouseleave' => 브라우저가 3)의 `() => { ... }` 를 호출함.