고양이와 코딩
[웹 풀사이클 데브코스 TIL] 5주차 Day 3 - Node.js 및 Express.js를 사용한 서버 개발 실습 (3) 본문
데브코스 TIL
[웹 풀사이클 데브코스 TIL] 5주차 Day 3 - Node.js 및 Express.js를 사용한 서버 개발 실습 (3)
ovovvvvv 2023. 12. 13. 21:30728x90
핸들러란 ?
"요청에 의해 호출되는 메서드" 입니다
지금의 개발 환경에서는 클라이언트로부터 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)
})
'데브코스 TIL' 카테고리의 다른 글
[웹 풀사이클 데브코스 TIL] 5주차 Day 5 - REST API 개발 실습 (2) (1) | 2023.12.15 |
---|---|
[웹 풀사이클 데브코스] REST API 개발 (0) | 2023.12.14 |
[웹 풀사이클 데브코스 TIL] 5주차 Day 2 - Node.js 및 Express.js를 사용한 서버 개발 실습 (2) (0) | 2023.12.12 |
[웹 풀사이클 데브코스 TIL] 5주차 Day 1 - Node.js & Express.js 서버 개발 실습(1) (1) | 2023.12.11 |
[ 웹 풀사이클 데브코스 TIL ] 4주차 Day 5 - REST API 디자인 및 구현 (2) | 2023.12.08 |