고양이와 코딩

[웹 풀사이클 데브코스 TIL] 5주차 Day 3 - Node.js 및 Express.js를 사용한 서버 개발 실습 (3) 본문

데브코스 TIL

[웹 풀사이클 데브코스 TIL] 5주차 Day 3 - Node.js 및 Express.js를 사용한 서버 개발 실습 (3)

ovovvvvv 2023. 12. 13. 21:30
728x90

핸들러란 ?

"요청에 의해 호출되는 메서드" 입니다

지금의 개발 환경에서는 클라이언트로부터 HTTP 요청을 받아들이고, 해당 요청에 대한 처리를 담당하는 것을 뜻하고

 

이벤트(상호작용)이 필요한 환경에서는 이벤트 핸들러가 사용됩니다!
클릭, 키보드 입력같은 이벤트가 발생했을 때 실행되는 함수를 "이벤트 핸들러"라고 합니다 ㅎㅎ

 

 

Find 함수

array.find(callback(element[, index, array])[, thisArg])

find() 함수는 이런 구문으로 사용합니다 !

받는 매개변수는 

  • element : 배열에서 현재 처리중인 요소
  • index : 배열에서 현재 처리 중인 요소의 인덱스
  • array : find()가 호출된 배열
  • thisArg : callback 함수 내부에서 this로 사용될 값

이렇게 있구요,,
❗️주의해야 할 점은 find() 함수는 조건을 만족하는 첫 번째 요소반환하기 때문에 유의해서 사용해야 합니다 

    fruits.forEach((fruit) => {
        if (fruit.id == id) {
            findFruit = fruit
        }
    })

이렇게 작성 된 코드를

    let findFruit = fruits.find(f => (f.id == id))
    // fruits 배열 안에 있는 객체 중, id 값이 params.id와 같은 객체

이렇게 한 줄로 나타낼 수 있습니다 ⸝⸝ ᷇࿀ ᷆⸝⸝

 

 

회원 API 설계

이제 조금 더 본격적으로 API 설계를 해 보는데요,
회원 id나 pwd같은 중요한 개인정보는 !! 🍀 body 🍀 에서 받아와야 한다는 것을 잊지 맙시다 ㅎ ㅎ

 

로그인을 할 때, GET으로 받아야 할까요,, 아니면 POST로 받아야 할까요?
저는 당당하게 GET!! 이라고 외쳤는데.. (ㅎㅎ) 우리는 body가 필요하기 때문에 POST로 받아야 합니다 !!👾

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}님 탈퇴 처리 되었습니다.` 또는 메인 페이지로 이동

 

 

route 사용

 app
    .route ('/users/:id')
    .get((req, res) => {
        let {id} = req.params
        id = parseInt(id)

    const user = db.get(id)
    if(user === undefined) {
        res.status(404).json({
            message: "존재하지 않는 회원입니다."
        })
    } else {
        res.status(200).json({
            userId : user.userId,
            name : user.name
        })
    }
    console.log(id)
})
.delete((req, res) => {
    let {id} = req.params
    id = parseInt(id)

    const user = db.get(id)
    if(user === undefined) {
        res.status(404).json({
            message: "존재하지 않는 회원입니다."
        })
    } else {
        db.delete(id)

        res.status(200).json({
           message :`${user.name}님 다음에 또 뵙겠습니다.`
        })
    }
    console.log(id)
})