Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

ddodoi 님의 블로그

4주차-파트 05: 핸들러, find()와 예외처리, ==과 === 비교 본문

웹풀스택 일일정리

4주차-파트 05: 핸들러, find()와 예외처리, ==과 === 비교

ddodoi 2024. 9. 7. 22:58

CHAPTER 1. 핸들러(Handler)

핸들러(Handler)

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

노드: 콜백함수로, app.HTTPMETHOD(path, 핸들러)

 

app.get()안 function함수가 handler이다.

 

cf. 스프링: 컨트롤러

 

CHAPTER 2. find(), 예외 처리

 

자바스크립트에서 find함수를 이용하여 조건을 만족하는 요소를 찾을 수 있다.

✔️find()

배열에서 특정 조건을 만족하는 요소를 찾아 첫 번째 요소를 반환하는 함수

 

기본형식

arr.find(callbackFn[, thisArg])

 

 

arr: find함수 적용 배열

callbackFn: 배열의 각 요소를 처리하는 콜백 함수입니다. 콜백 함수는 배열의 각 요소에 대해 실행됩니다.

thisArg: 옵션. callbackFn 함수 내부에서 this로 사용될값 

 

 

https://codingeverybody.kr/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-find-%ED%95%A8%EC%88%98/

 

자바스크립트 find() 함수 – 개념 정리 및 사용 예제 - 코딩에브리바디

find() 함수는 배열에서 특정 조건을 만족하는 요소를 찾아 첫 번째 요소를 반환하는 함수입니다. 배열의 각 요소에 대해 콜백 함수를 사용하여 원하는 조건의 요소를 찾습니다. 이 함수는 배열에

codingeverybody.kr

 

 

 

 

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}님 환영합니다`
    })
    }
})