요청의 유효성 검사하는 미들웨어

tpids·2024년 7월 23일
0

project

목록 보기
4/26

validatePostInput 미들웨어는 Express.js 애플리케이션에서 요청 데이터의 유효성을 검사하기 위해 사용됩니다.

이 미들웨어는 주로 API 엔드포인트에 대한 요청이 올바른 형식과 내용을 가지고 있는지 확인하는 역할을 합니다.

// middleware/validatePostInput.js
const validatePostInput = (req, res, next) => {
    const { username, title, content, post_date } = req.body;

    // Check if any of the required fields are missing
    if (!username || !title || !content || !post_date) {
        // If any field is missing, respond with a 400 Bad Request status and an error message
        return res.status(400).json({ error: 'All fields are required' });
    }

    // If all fields are present, proceed to the next middleware or route handler
    next();
};

module.exports = validatePostInput;

기능 및 역할

미들웨어 정의

  • validatePostInput 함수는 Express 미들웨어로 사용됩니다.
  • 미들웨어는 요청 객체(req), 응답 객체(res), 그리고 다음 미들웨어나 라우트 핸들러로의 호출 함수(next)를 매개변수로 받습니다.

필드 확인

  • const { username, title, content, post_date } = req.body;를 통해 요청 본문(req.body)에서 필요한 필드들을 추출합니다.
  • if (!username || !title || !content || !post_date) 조건문을 사용하여 필드가 누락된 경우를 확인합니다.
  • 여기서 username, title, content, post_date는 요청 본문에서 필수로 제공되어야 하는 데이터 필드입니다.

응답 처리

  • 필드 중 하나라도 누락된 경우, res.status(400).json({ error: 'All fields are required' });를 통해 클라이언트에게 400 Bad Request 응답과 함께 오류 메시지를 반환합니다.
  • 이는 클라이언트에게 필요한 데이터를 모두 제공하지 않았다는 것을 알립니다.

다음 미들웨어 호출

  • 모든 필드가 정상적으로 제공된 경우, next();를 호출하여 요청을 다음 미들웨어나 라우트 핸들러로 전달합니다.
  • 이는 요청이 유효하다는 것을 의미하며, 실제 비즈니스 로직이 실행될 수 있도록 합니다.
// community.js
const validatePostInput = require('./middleware/validatePostInput'); // 추가해서 적용 
... 
profile
개발자

0개의 댓글