본문 바로가기

Youtube Clone Coding

Form validation

Form validation은 쉽게 말해서 사용자 이름이 이미 사용중인 이름인지, 이메일이 이미 가입된 이메일인지 등의 유효성을 검사하는 것이다. 

 

1. 사용자 이름 & 이메일이 이미 가입된 유저와 같은 경우

const { name, username, email, password, password2, location } = req.body;
const usernameExists = await User.exists({ $or: [{ username }, { email }] });
    if (usernameExists) {
        return res.status(400).render("join", { 
        	pageTitle: "회원가입", 
            errorMessage: "이미 사용중인 이름/이메일 입니다." 
         });
    }

일단 유저가 존재하는지 판단하는 함수인 exists를 사용한다. 이는 몽구스의 함수이므로 모델명.exists() 와 같이 사용한다. 그리고,req.body로 부터 username과 email을 받았으므로, 이와 같은 값이 있는가? 를 수행하는 exists함수를 만들 수 있다. 이때는 $or 을 사용하여 두 조건중 하나만 부합해도 exists는 true를 반환한다.

따라서 조건문을 통해 해당 유저가 존재한다면, 400을 반환하고(Bad request) 회원가입 페이지를 다시 렌더링 하면서, 에러메세지를 보내준다. 

 

2. 비밀번호 확인 란이 틀렸을경우

우리가 실제로 어느 사이트에 회원가입을 할때, 비밀번호를 2번 작성해 확인하는 과정이 있는데 이것이 그것이다.

if (password !== password2) {
        return res.status(400).render("join", { 
        	pageTitle: "회원가입",
            errorMessage: "비밀번호를 확인해주세요."
        });
    }

위에서 password와 password2를 req.body로 부터 받아왔으므로 이 두개를 비교한다. 둘이 다르다면 400을 반환하고 다시 회원가입 페이지로 렌더링 해주면서 에러메세지를 보여준다.

'Youtube Clone Coding' 카테고리의 다른 글

세션 & 쿠키  (0) 2022.11.14
로그인 페이지  (0) 2022.11.14
사용자 비밀번호 해싱  (0) 2022.11.11
User(사용자) 만들기  (0) 2022.11.11
Search 페이지  (0) 2022.11.11