[Node.js] 2-1. Http모듈에서의 라우팅

337 ch·2024년 1월 28일

Node.js

목록 보기
2/4
post-thumbnail

라우팅에대해 배우기 전에 먼저 알아야할 것!

URL! 그리고 parse

우리가 흔히 볼 수 있는 URL의 구성은 여러가지로 이루어져있는데
라우팅은 그 중 pathname 혹은 query를 사용할 수 있다

라우팅을 하기 위해선 먼저 url의 구성을 파악하고 출력해보기 위해
'parse'를 사용하여 보자

🖍️parse

parse란 파싱이라고도 한다. 분석하다라는 뜻, 이름값을 한다
만약 addr에 임의의주소를 문자열로 넣었다고 하자
그럼 import해준 url의 기능 중 parse를 사용하는 것이니 url.parse()라고 써준뒤
url.parse(분석할대상, bool)과 같은 형식으로 작성해주면 된다

여기서 주의할 점은
1. 첫번째 인자에 객체가 들어오면 에러가 난다 = (addr, true)로 하면 결과가 객체로 반환되니까
2. 두번째 인자에 false가 기본값이며, false는 분석 결과를 string문자열로 true는 분석결과를 object객체로 출력한다
3. parse의 두번째 인자의 true,false는 query에 한해서 객체로 반환하거나 문자열로 반환한다




주의사항 3번과 내용추출에 관해 더 자세히 설명하기 위해 아래의 코드를 참고하자


L5 : addr이라는 변수에 임의의 주소를 할당하여 주었다
L7 : url.parse에 두번째 인자를 true로 설정해주었다

아래 사진의 query를 비교해보면 왼쪽은 결과를 객체로, 오른쪽은 결과를 문자열로 반환한걸 볼 수 있다. 다른 아이들은 모두 결과가 똑같다!


url.parse(addr, true)url.parse(addr, false)



원하는 내용만 추출하고 싶다면

쿼리의 내용 중 원하는 내용만 추출하고싶다면
위의코드 L11 과 같이 query뒤에 .원하는내용 을 적어준다
쿼리는 '?' 뒤부터 객체로 반환해주니 .name, .age를 붙여주는 그 결과만 출력된다

클라이언트 주소에서 원하는 내용만 추출하고 싶다면 다음 나오는 코드의 L18~L19와 같이 적용하면 된다!

++ path와 pathname을 헷갈리지말자



🖍️라우팅이란

어떤 네트워크에서 해당 네트워크를 통해서 데이터를 보낼 때 적절한 루트를 선택하는 과정을 말한다

최상위 디렉토리들은 하위 디렉토리를 가지고있다
예를 들면 http://localhost:3000/service 같은 요청이 들어오면 적절한 응답을 해주어야하는데(service라는 하위 주소로 가기 위한 핸들링이 필요한데)
이것을 라우팅이라고 한다.
요청에 맞는 경로 찾아서 응답해주기!

  • 이과정에서 http 요청 메서드(get, post)에 대해 응답하는 것을 할 수 있다
    회원 정보를 생성, 조회, 수정, 삭제 할 수 있다(CRUD)

  • http모듈의 라우팅과 express 모듈 라우팅의 처리하는 방식의 차이점을 알 수 있다

  • 클라이언트 요청에 대해 적절한 루트로 안내하여 애플리케이션 내에서 분기처리를 핸들링 하는것



++ RESTfull API
CRUD 처리를 구현하기 위해서 해당 메서드로 서버에 요청하는 것
레스트풀스럽다 = 요청하는 주소만 봐도 무슨 작업인지 유추가능하다

🖍️http 모듈에서의 라우팅

pathname으로 라우팅

req.url : 서버로 요청이 들어온 url 주소 전체를 받을 수 있다는 점이 장점
도메인 뒤의 주소 다 받음 -> /about/person?name=superman&age=20

간단한 페이지 정보만 요청하는 경우면 res.url만으로 충분히 라우팅 처리가 가능

else~if 문과 pathname으로

템플릿 함수 분리

  1. 템플릿 함수 생성
  2. 인라인 css
  3. 메뉴 생성 -> a태그로 누르면 해당 페이지로 이동하도록

profile
노에러

0개의 댓글