상세 컨텐츠

본문 제목

/bcf/{version}/projects POST요청

카테고리 없음

by 주초위왕 2025. 4. 29. 20:14

본문

POST요청에는 없는 프로젝트를 넣는거이기 때문에 project_id가 안 들어간다

// 새로운 프로젝트 생성
const postProject = async (req, res) => {
  console.log('#POST 프로젝트 생성');

  try {
    // 경로에서 projectId 추출

    const { project_id: projectId, name, authorization } = req.body;

    console.log('#POST 프로젝트 생성 요청 도착');
    console.log('Request Body:', req.body);

    let sql = `
      INSERT INTO  project
                   (project_id, name, authorization)
           VALUES  (?, ?, ?)
              `;

    const values = [projectId, name, JSON.stringify(authorization)];


    const results = await query(sql, values);


    if (results.affectedRows === 0) {
      return res.status(400).json({ message: '프로젝트 생성 실패' });
    }

    // 응답 전송 (201 Created)
    res.status(201).send(results[0]);
  } catch (error) {
    console.error('프로젝트 생성 중 오류 발생:', error);
    res.status(500).json({ error: '서버 오류 발생' });
  }
};

  1. Postman에서 보낸 body:
    • 이 JSON 데이터는 Postman에서 보낸 HTTP 요청의 body에 담겨져 있어.
  2. json
    복사편집
    { "project_id": "B724AAC3-5B2A-234A-D143-AE33CC18414", "name": "Example project 4", "authorization": { "project_actions": ["create", "update"] } }
  3. 서버에서 req.body로 받기:
    • 이 body는 Express에서 자동으로 req.body 객체로 파싱되어 서버로 전달됨.
    • 그래서 req.body는 아래와 같이 접근할 수 있어:
    • js
      복사편집
      req.body = { project_id: "B724AAC3-5B2A-234A-D143-AE33CC18414", name: "Example project 4", authorization: { project_actions: ["create", "update"] } }
  4. req.body에서 필요한 값 추출하기:
    • 이렇게 전달된 req.body에서 name, project_id, authorization 값을 꺼내서 사용할 수 있어:
    • js
      복사편집
      const { project_id, name, authorization } = req.body;
  5. DB에 삽입할 값(values) 준비:
    • 이 값들을 INSERT 쿼리의 values 배열에 넣어서 SQL 쿼리에 전달:
    • js
      복사편집
      const values = [projectId, name, JSON.stringify(authorization)];
    • values는 projectId, name, 그리고 authorization을 순서대로 담은 배열.
  6. SQL 쿼리 실행:
    • 이 values 배열을 SQL 쿼리문에 넣어서 DB에 저장:이때, ?는 values 배열의 값들이 차례대로 들어가게 돼.
    • js
      복사편집
      const sql = ` INSERT INTO project (project_id, name, authorization) VALUES (?, ?, ?) `;
  7. 결과 확인:
    • 쿼리 실행 후 results에 DB의 응답이 담기고, 이를 바탕으로 성공 메시지를 클라이언트에 보내게 되는 거야.

전체적인 흐름:

  1. Postman → req.body로 서버에 데이터 전달
  2. 서버 → req.body에서 필요한 값들 추출
  3. values 배열에 값을 담아 SQL 쿼리 실행
  4. DB에 값 삽입 후 응답

그래서, Postman에서 보낸 body서버에서 req.body로 들어가고, 그 값들이 values로 전달된 후 SQL 쿼리문에 삽입되는 거야! 😄

반응형

댓글 영역