관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

웹과 Express.js 4 - Express.js 동작 방식 2 : 실습 문제 및 미션 문제 풀기 본문

웹 · 앱 개발/자바 스크립트

웹과 Express.js 4 - Express.js 동작 방식 2 : 실습 문제 및 미션 문제 풀기

huenuri 2024. 12. 11. 11:53

마지막 남은 문제까지 열심히 공부해 보자. 이 공부를 마치면 중간시험 마지막 과목인 SQL 시험 문제를 풀어보려고 한다. 그런 다음 지난번에 다 마무리하지 못한 MySQL 프로그램으로 남은 학습을 끝까지 마칠 예정이다.

커서를 공부하다가 너무 지루해서 서둘러 공부를 마지고 마지막 단원을 공부하지 않은 게 마음에 걸렸다. 그럼 이제 실습 문제를 풀어보기로 하자.


 

 

 

 

실습 2 - Router 사용하기

 

 


 

 

 

문제 풀기

 

파일을 수정하여 라우터 모듈을 app 객체에 ‘/users’ 경로로 연결했다.

 

 

 


 

 

 

 

미션 - 계층적 구조의 라우터 사용하기

 

 

 

 

 

 

 

이 문제는 Express.js를 사용하여 계층적 구조의 라우터를 설정하는 것에 대해 알아본다. 현재 서버는 /users 경로에 userRouter로 연결되어 있다. 여기서 추가로 /users/:userId/pets 경로에 petsRouter를 설정해야 한다.

  1. petsRouter는 usersRouter의 하위 라우터로 연결해야 하고, path parameter를 활용하여 /users/:userId/pets 이하의 요청을 처리할 수 있도록 구성해야 한다.
  2. petsRouter는 “GET /users/:userId/pets” 요청에 대해 사용자 ID에 따라서 “Pets of user {userId}”라는 문자열을 반환해야 한다. 예를 들어, “GET /users/15/pets” 요청이 들어오면 응답은 “Pets of user 15”가 될 것이다.

여기서 Router({ mergeParams: true })를 사용하여 부모 라우터에서 전달된 파라미터를 사용할 수 있도록 설정해야 한다.


 

 

 

문제 풀기

 

pets.js

 

 /users 경로에 하위 라우터를 추가했다.

 

 

pets

 

 

하지만 코드 오류가 떠서 실행이 되지 않는다. 몇 번을 수정했지만 되지 않았다. 그래도 다시 한번 코드를 수정하기로 했다.


 

 

 

코드 수정하기

코드에서 발생할 수 있는 오류는 petsRouter를 users.js 파일에서 제대로 불러오지 않았기 때문일 가능성이 높다. petsRouter가 정의된 모듈을 올바르게 import하지 않았다는 점이다.

 
 
 

user.js

 

 


 

 

 

학습을 마치고

마지막 미션 문제는 많이 어려웠지만 그래도 다 풀고 학습을 마칠 수 있어서 감사했다. 이로써 Node.js와 Express.js 과목을 완수한 것이다.

이제 조금 쉬었다가 다음 과목을 공부해볼 것이다.