ddodoi 님의 블로그
4주차-파트 05: 핸들러, find()와 예외처리, ==과 === 비교 본문
CHAPTER 1. 핸들러(Handler)
✅핸들러(Handler)
HTTP request가 날아오면 자동으로 호출되는 메소드
노드: 콜백함수로, app.HTTPMETHOD(path, 핸들러)
cf. 스프링: 컨트롤러
CHAPTER 2. find(), 예외 처리
자바스크립트에서 find함수를 이용하여 조건을 만족하는 요소를 찾을 수 있다.
✔️find()
배열에서 특정 조건을 만족하는 요소를 찾아 첫 번째 요소를 반환하는 함수
기본형식
arr.find(callbackFn[, thisArg])
arr: find함수 적용 배열
callbackFn: 배열의 각 요소를 처리하는 콜백 함수입니다. 콜백 함수는 배열의 각 요소에 대해 실행됩니다.
thisArg: 옵션. callbackFn 함수 내부에서 this로 사용될값
colors배열에서 입력받은 id값에 따라 개별색을 보여주는 코드예시
const express = require('express')
const app = express()
app.listen(1234)
const colors = [
{id : 1, name: 'red'},
{id : 2, name: 'orange'},
{id : 3, name: 'yellow'},
{id : 4, name: 'green'}
]
//과일 개별 조회
app.get('/colors/:id', function(req,res){
let {id} = req.params //let id = req.params.id
var findColor = colors.find(f => (f.id == id))
//colors 배열 안에 있는 객체 중, id값이 params.id랑 같은 객체
res.json(findColor)
})
존재하지 않는 id값을 받으면 예외처리해주는 코드도 추가해준다.
if (findColor){
res.json(findColor)
}
else{ //예외를 터트린다 = http status code 성공x 실패!!
res.status(404).send(
"전달주신 id로 저장된 색이 없습니다"
)
}
CHAPTER 3. == vs ===
✔️==
자료형은 상관 없이 값만 비교한다.
✔️===
자료형과 값 모두 상관있다.
// ==, ===의 차이
if (1=="1"){ //자료형은 상관 없이, 값만 비교
console.log("같아")
}
else{
console.log("같지 않다")
}
if (1==="1"){ //자료형이 상관 있음, 값도 상관있음
console.log("같아")
}
else{
console.log("같지 않다")
}
CHAPTER 4. 미니 프로젝트 시작
<구현할 기능>
회원
- 로그인 : 로그인 페이지 (1) 화면완성 API x (2)로그인 버튼 클릭 => id,pwd로그인 시켜줄 API
- 회원 가입 : 회원 가입 페이지 (1) 화면생성 API x (2)회원 가입 버튼 클릭 => id, pwd, 이름으로 회원가입 시켜줄 API
- 회원 정보 조회, 회원 탈퇴: 마이페이지 (1) 화면생성 => 회원정보 조회 API (2)회원 탈퇴 클릭시, 회원 탈퇴 시켜줄 API
회원은 계정 1개당 채널 100개를 가질 수 있다.
채널
- 채널 생성
- 채널 수정
- 채널 삭제
제일 먼저 회원 가입 코드를 구현하였다.
예외처리를 이용하여 body값으로 아무것도 입력하지 않았을 경우를 대처하였다.
처음에는 req.body == undefined로 했는데 계속 "undefined님 환영합니다" 란 메세지만 떠서 req.body는 undefined로 정의되지 않는다는 걸 알게 되었다.
다른 방법으로 req.body.size나 req.body.length를 이용해도 된다.
//회원가입
app.post('/join', function(req,res){
if (req.body == {}){
res.status(400).json({
message : '입력 값을 다시 확인해주세요'
})
}
else{
db.set(id++, req.body)
res.status(201).json({
message : `${db.get(id-1).name}님 환영합니다`
})
}
})
'웹풀스택 일일정리' 카테고리의 다른 글
5주차-파트02: 라우팅, vs code에서 변수명 한번에 바꾸기 (0) | 2024.09.10 |
---|---|
5주차-파트01: Object.keys(), API설계 (0) | 2024.09.09 |
4주차-파트 04: forEach문, HTTP 매서드, 리팩토링, HTTP 상태 코드 (0) | 2024.09.05 |
4주차-파트 03: Postman 실습 (0) | 2024.09.05 |
4주차-파트02: Map에 객체 담기, Express 설치 (0) | 2024.09.04 |