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: '서버 오류 발생' });
}
};
- Postman에서 보낸 body:
- 이 JSON 데이터는 Postman에서 보낸 HTTP 요청의 body에 담겨져 있어.
-
json
{ "project_id": "B724AAC3-5B2A-234A-D143-AE33CC18414", "name": "Example project 4", "authorization": { "project_actions": ["create", "update"] } }
- 서버에서 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"] } }
- req.body에서 필요한 값 추출하기:
- DB에 삽입할 값(values) 준비:
- SQL 쿼리 실행:
- 이 values 배열을 SQL 쿼리문에 넣어서 DB에 저장:이때, ?는 values 배열의 값들이 차례대로 들어가게 돼.
-
js
const sql = ` INSERT INTO project (project_id, name, authorization) VALUES (?, ?, ?) `;
- 결과 확인:
- 쿼리 실행 후 results에 DB의 응답이 담기고, 이를 바탕으로 성공 메시지를 클라이언트에 보내게 되는 거야.
전체적인 흐름:
- Postman → req.body로 서버에 데이터 전달
- 서버 → req.body에서 필요한 값들 추출
- values 배열에 값을 담아 SQL 쿼리 실행
- DB에 값 삽입 후 응답
그래서, Postman에서 보낸 body가 서버에서 req.body로 들어가고, 그 값들이 values로 전달된 후 SQL 쿼리문에 삽입되는 거야! 😄
댓글 영역