minstudio

유효성 검사 (Validation)

클라이언트(사용자)가 보낸 데이터는 절대 믿으면 안 됩니다. 나이를 문자로 보내거나 이메일 형식이 아닌 데이터를 DB에 넣으려다 서버가 터지는 것을 막기 위해, 백엔드 입구에서 데이터를 깐깐하게 검문하는 절차입니다.

const Joi = require("joi");

// 회원가입할 때 들어와야 하는 데이터 규칙(스키마) 정의
const schema = Joi.object({
    username: Joi.string().min(3).max(30).required(), // 3~30글자 필수
    password: Joi.string().pattern(new RegExp("^[a-zA-Z0-9]{3,30}$")),
    email: Joi.string().email() // 진짜 이메일 형식인지 검사
});

app.post("/signup", (req, res) => {
    const { error } = schema.validate(req.body);
    
    // 형식이 하나라도 틀리면 400 에러와 함께 빠꾸! (DB까지 가지도 않음)
    if (error) return res.status(400).send(error.details[0].message);
    
    res.send("검증 통과! 회원가입 진행");
});
유효성 검사 (Validation) | Minstudio