잘게 세분해서 기능 구현한다.
// case 1. splice로 수정하기
app.put("/posts/:id", (req, res) => {
// 수정하고 싶은 게시글 ID
const id = req.params.id;
// 변경 내용을 받음
const { user, title, contents } = req.body;
// console.log(req.body);
// id 에 해당하는 글을 posts 찾음
const post = posts.find((post) => `${pos t.id}` === id);
const index = posts.findIndex((post) => `${post.id}` === id);
posts.splice(index, 1, {
...post,
user,
contents,
title,
});
res.send("수정이 된거니?");
});
// case 2. 정석?으로 수정하기
app.put("/posts/:id", (req, res) => {
// 수정하고 싶은 게시글 ID
const id = req.params.id;
// 변경 내용을 받음
const { user, title, contents } = req.body;
// console.log(req.body);
// id 에 해당하는 글을 posts 찾음
const post = posts.find((post) => `${post.id}` === id);
post.user = user;
post.title = title;
post.contents = contents;
const index = posts.findIndex((post) => post.id === id);
posts[index] = post;
res.send("수정이 된거니?");
});
// case 3. for문으로 수정하기
app.put("/posts/:id", (req, res) => {
// 수정하고 싶은 게시글 ID
const id = req.params.id;
const { user, title, contents } = req.body;
for (let i = 0; i < posts.length; i++) {
if (posts[i].id === Number(id)) {
posts[i].user = user;
posts[i].title = title;
posts[i].contents = contents;
}
}
res.send("수정이 된거니?");
});
ex) 5만 개가 있다면 for문으로 하게 되면 2번째 항목을 찾아서 수정해도 5만 개를 다 돌림.
find는 찾는 즉시 (2번째라면) 반복문 종료
DB란?
데이터를 관리하는 프로그램
어떤 기능에 대해 폴더를 분류하거나 이름을 통일해서 짓는 걸 ‘패턴’이라고 한다.
IP
인터넷에 연결된 컴퓨터의 주소
127.0.0.1 → 내주소 → domain // localhost
요청자 : 다른 프로그램.
웹소켓(WebSocket)
실시간 웹 서비스를 제공하기 위해 만들어진 Socket.
여러 협업툴이라고 보면 된다. 구글 독스, 노션 등
posts라는 DB와 posts라는 테이블을 만드는 가정