가정
1. 이미 저장된 데이터가 있다고 가정(배열 변수에 각 사용자를 객체로 저장, userID로 검색)
2. 새로 입력 받는 사용자 정보는 기존 정보 뒤에 저장
3. 출력(GET) 생성(POST) 수정(PATCH) 내용 구현
const users = [
{
userID: 1,
userName: 'Rebekah Johnson',
postingId: 1,
postingTitle: '간단한 HTTP API 개발 시작!',
postingContent: 'Node.js에 내장되어 있는 http 모듈을 사용해서 server를 구현',
},
{
userID: null,
userName: '',
postingId: null,
postingTitle: '',
postingContent: ','
},
]
if(method === 'GET') {
if(url === '/users/signup') {
response.writeHead(200,{'Content-Type' : 'application/json'})
response.end(JSON.stringify({"users" : users}));
};
}
else if (method === "POST") {
if (url === "/users/signup"){
let body = "";
request.on("data", (data) => {
body += data;
});
request.on("end", () => {
const user = JSON.parse(body);
users.push({
userID: user.userID,
userName: user.userName,
postingId: user.postingId,
postingTitle: user.postingTitle,
postingContent: user.postingContent
});
response.writeHead(200,{'Content-Type' : 'application/json'})
response.end(JSON.stringify({"users" : users}));
});
}
}
else if(method === 'PATCH') {
if(url === '/users/signup') {
let body = "";
request.on("data", (data) =>{
body += data;
});
request.on("end", () => {
const user = JSON.parse(body);
const index = null;
const inputUserIdStr = user.userId;
const inputUserId = parseInt(inputUserIdStr);
for(let i = 0; i < users.length-1; i++){
if(users[i].userID === inputUserId){
if(user.userName === users[i].userName){
users[i].userID = users[i].userID;
}
else if(user.userName !== users[i].userName){
console.log(users[i].userName);
console.log(user.userName);
users[i].userName = user.userName;
}
if(user.postingId === users[i].postingId){
users[i].postingId = users[i].postingId
}
else if(user.postingId !== users[i].postingId){
users[i].postingId = user.postingId;
}
if(user.postingTitle === users[i].postingTitle){
users[i].postingTitle = users[i].postingTitle
}
else if(user.postingTitle !== users[i].postingTitle){
users[i].postingTitle = user.postingTitle;
}
if(user.postingContent === users[i].postingContent){
users[i].postingContent = users[i].postingContent
}
else if(user.postingContent !== users[i].postingContent){
users[i].postingContent = user.postingContent;
}
}
}
})
response.writeHead(200,{'Content-Type' : 'application/json'})
response.end(JSON.stringify({"users" : users}));
};
}
PATCH 기능 간단 설명
- 기존 데이터의 userID를 검색 후 해당 객체로 이동
- userName, postingId, postinTitle, postinContent를 비교하여 입력값과 다르면 수정