본문 바로가기
Node.js

12/22 express.js 유효성 검사

by 케이리케리 2023. 12. 25.

유효성 검사 validation

"사용자가 입력한 값"에 대한 유효성(=타당성)을 검사(확인)하는 것

(= 사용자 요청에 대한)

 

userId : 값이 존재, 숫자

채널 name : 숫자 X, 문자열, 2자 이상

 

외부 모듈 "express-validator" 설치

npm install express-validator

 

const { body, validationResult } = require("express-validator");

router
    .route("/")
    .post(
        [
            body("userId").notEmpty().isInt().withMessage("숫자 입력 필요"),
            body("name").notEmpty().isString().withMessage("문자 입력 필요"),
        ],
        (req, res) => {
            const err = validationResult(req);

            if (!err.isEmpty()) {
                return res.status(400).json(err.array()); //return을 앞에 작성한 이유: 
            }
            const { name, userId } = req.body;

            let sql = `INSERT INTO channels (name, user_id) VALUES (?, ?)`;
            let values = [name, userId];
            conn.query(sql, values, function (err, results) {
                res.status(201).json(results);
            });
        }
    );

 

 

 

sql 에러 처리

- 현재 userId를 입력했을 때 데이터베이스에 없는 값을 입력한 경우 에러가 발생했다고 알려줘야한다. 에러처리를 하지않아서 사용자는 에러가 발생한지 모르는 상황

- sql에서 발생한 에러는 콜백함수 매개변수인 err를 활용해 처리한다.

conn.query(sql, values, function (err, results) {
    if (err) {
        console.log(err);
        return res.status(400).end();
    }
    res.status(201).json(results);
});

 

 

🌟API 우선순위는 코드를 작성한 순서이다.