CRUD 연습하자
CRUD의 데이터 처리기능인 create,read,update,delete의 약자이다.
let users = [
{
id: 1,
nickName: "닉1",
name: "홍길동",
age: 22,
},
{
id: 2,
nickName: "닉2",
name: "아무개",
age: 45,
},
];
이렇게 user리스트가 있다고 하고 하나씩 CRUD를 연습해보자
연습1) CREATE 유저생성과 중복체크하기
const isNickNameExist = (newNickName) => {
const existNickName = users.find((user) => user.nickName === newNickName);
if (existNickName) {
throw new Error("미이 존재하는 닉네임입니다.");
}
};
isNickNameExist("nick2");
일단 중복체크를 먼저 하였다. users에 find반복문으로 순회하여 새로운 변수를 생성하고, 존재할경우 error를 만드는 방법이다.
const createUser = (nickName, name, age) => {
id = users.sort((a, b) => b.id - a.id)[0].id + 1;
const user = {
id,
nickName,
name,
age,
};
users = [...users, user];
return user;
};
createUser('nick3','멋쟁이',25)
//[{...}, {...}, {...}]
//기존 2개의 users에서 3개로 증가한것을 볼 수 있다.
id는 자동적으로 숫자 하나씩 추가되게 하였다. sort를 이용하여 가장 마지막 숫자에 1씩 더해서 만드는 방법이다.
그리고 push를 하지않고, spread operator를 이용하여 users를 수정하였다.
연습2) update 유저 수정하기
const updateUser = (id, nickName, name, age) => {
const userList = users.filter((user) => user.id !== id);
const userToFix = users.find((user) => user.id === id);
const sameNickName = userToFix.nickName === nickName;
if (userToFix) {
if (nickName) {
if (sameNickName) {
throw new Error("기존의 닉네임과 같습니다.");
}
userToFix.nickName = nickName;
}
if (name) {
userToFix.name = name;
}
if (age) {
userToFix.age = age;
}
} else {
throw new Error("유저의 아이디가 존재하지 않습니다.");
}
users = [...userList, userToFix];
return userToFix;
};
updateUser(1, "nick10", "삽살개", 7);
// {id: 1, nickName: "nick10", name: "삽살개", age: 7}
// 기존 id1이 수정되었다.
유저 아이디가 없다면 Error를 보내는 방식으로 유/무 체크를 하였고, 닉네임은 중복이 없어야 한다는 생각에 if문을 내부에 이어서 추가하여 만들었다.
연습3) delete 유저 삭제를 해보자
const deleteUser = (id) => {
const deletedUserList = users.filter((user) => user.id !== id);
const userToDelete = users.find((user) => user.id === id);
if (userToDelete) {
users = [...deletedUserList];
} else {
throw new Error("유저의 아이디가 존재하지 않습니다.");
}
return;
};
deleteUser(2);
// id가 2번인 user가 삭제되었다.
삭제하는 방법또한 id의 존재 유/무 체크하기위한 if문으로 시작하여 중복 체크를 한 후, filter를 사용하여 id와 다른 리스트를 뽑은 변수를 다시 users로 넣는 방식이다.
연습4) read 유저 조회를 해보자
const getUser = (id) => {
const user = users.find((user) => user.id === id);
if (user) {
return user;
} else {
throw new Error("유저의 아이디가 존재하지 않습니다.");
}
};
getUser(1)
코드는 어떠한 기능을 넣느냐에 따라 훨씬 길어질 수도 있다.
체크해야할 부분이 더 많을 수 있으니 좀 더 세세하게 연습을 해보자!!
Author And Source
이 문제에 관하여(CRUD 연습하자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kyungjune/CRUD-연습하자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)