본문 바로가기

공부/타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js)

백엔드 기초: Node.js + Express 기본(8)-HTTP status, 유튜브데모 users 설계

핸들러(handler)란?

HTTP request가 날아오면 자동으로 호출되는 메소드

❄️노드: 콜백함수, app.HTTPmethod(path, handler)

cf. 스프링: 컨트롤러

 

❄️과일 REST API 연습하기

✨✨예외처리✨✨

res.status(404).send() // res와 send 사이에 status(404)가 끼였다.🤣

사용하여 통신 에러의 status를 보내줄 수 있다.

🔥HTTP status code는 클라이언트와 소통을 정확하게 하기 위함🔥

❄️ 2**: 성공

  1. 200: 조회/수정/삭제 성공
  2. 201: 등록 성공

❄️ 4**: 클라이언트 문제

  1. 400: 요청한 연산(처리)을 할 때 필요한 데이터(req)가 덜 왔을때
  2. 404: 찾는 페이지(리소스) 없음(url에 맞는 api 없음)

❄️ 5**: 서버 문제

  1. 500: 서버가 죽었을 때 (서버가 크리티컬한 오류를 맞았을 때)

 

전체조회시 나오는 JSON 데이터. 배열안에 들어가 있다.

 

 

URL에서 받아온 name이 배열안의 name과 동일할 때 띄워줌❗

name에 없는 과일을 보내줬더니 등록되지 않은 과일이라고 뜨며 404 Not Fount가 뜬다❗

 

// ==, ===의 차이

// 자료형은 상관없이, 값만 비교
if (1 == '1') {
	console.log('같아'); // 콘솔에 찍힘
} else {
	console.log('같지 않다');
}

// 값과 자료형까지 같아야함
if (1 === '1') {
	console.log('같아');
} else {
	console.log('같지 않다'); // 콘솔에 찍힘
}

 

🔥유튜버데모 에러 예외처리🔥

POST도 예외처리를 해주어야함!

body에 아무런 값도 전달해 주지 않았을때!

그리고 내 생각엔 좀 더 고도화가 되면 중복처리도 해주어야할 것 같다❗

 

❄️유튜브 운영하는것처럼 설계 실습해보기

회원API 설계

  1. 로그인 => POST/login
    • req: body(id, pwd)
    • res: `${name}님 환영합니다.` / / 메인페이지
  2. 회원가입 => POST/join
    • req: body(id, pwd, name)
    • res: `${name}님 환영합니다.` / / 로그페이지
  3. 회원(개별)정보조회 => GET/users/:id
    • req: url(id)
    • res: id, name
  4. 회원(개)탈퇴 => DELETE/users/:id
    • req: url(id)
    • res: `${name}님 다음에 또 뵙겠습니다.` / / 메인페이지

 

 

회원은 계정당 100개의 채널을 가질 수 있다

채널

  1. 채널생성
  2. 채널수정
  3. 채널삭제