개별조회와 삭제는 경로가 일치하기때문에 .route를 이용하여 묶어서 작업하려고 합니다.
app
.route('경로')
.get(핸들러함수)
.delete(핸들러함수)
이 코드에서 핸들러 함수를 작성한다고 봐주시면 좋을 것 같습니다.
회원 개별 조회
.route('/user/:num')
.get((req, res)=>{
let { num } = req.params;
num = parseInt(num);
const user = db.get(num);
if (!db.has(num)) {
res.status(404).json({
message: "찾는 유저가 없습니다."
});
return;
}
res.status(200).json({
userId: user.id,
name: user.name
});
})
조회는 기본적으로 GET method를 사용을 합니다. 개별 유저를 조회할 것이기 때문에 params로 num을 받아오고 이때 받아온 num을 has함수에 사용하여 Map객체에 params로 받은 회원번호가 존재하는지 확인을 하고 없으면 리소스를 찾을 수 없는 404 상태코드를 보내줍니다. 유저가 존재하는 경우에는 상태코드로 성공했다는 200을 전달해 줄 수 있습니다.
회원번호가 존재하는지는 확인하기 위해서 db.has(num)을 사용해도 되지만
const user = db.get(num);
if (!user || user == {} || user == undefined) {
res.status(404).json({
message: "찾는 유저가 없습니다."
});
return;
}
위에 저장된 변수 user를 이용하여 user가 존재하지 않거나, 혹은 빈객체로 들어오거나, undefined 일 때 등등 원하는 조건을 걸어서 존재여부를 확인할 수 있습니다.
DB를 이용한 개별조회
try {
await conn.query(
`select * from users where email = ?`,
[email],
(err, data, fileds) => {
if (!data) res.status(200).json(data);
else {
res.status(404).json({
message: "찾는 유저가 없습니다."
});
}
}
);
} catch (err) {
console.log(err);
throw new Error(err);
}
'프로젝트 > 1.youtube-project' 카테고리의 다른 글
[실전]미니 프로젝트 - 로그인 (0) | 2023.12.14 |
---|---|
[실전]미니 프로젝트 - 회원 개별 "탈퇴" (0) | 2023.12.14 |
[실전]미니 프로젝트 - 회원가입 (0) | 2023.12.14 |
프로젝트 시작 - youtube API project (0) | 2023.12.13 |
[실전] 미니 프로젝트 - youtube API 설계 (0) | 2023.12.13 |