유효성 검사 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 우선순위는 코드를 작성한 순서이다.
'Node.js' 카테고리의 다른 글
| 12/25 로그인(인증) 세션 만료 (0) | 2023.12.25 |
|---|---|
| 12/21 DB 모듈화, DB연동 후 회원 API/코드, 채널 API/코드 수정 (0) | 2023.12.24 |
| 12/14~15 (0) | 2023.12.18 |
| 12/13 express.js ==과 ===의 차이, 예외처리 고도화 (1) | 2023.12.18 |
| 12/11 express.js postman, express.js에서 사용되는 메소드들, 속성들 (0) | 2023.12.14 |