[node.js] let { a, b, c } = req.body

Chaedie·2022년 7월 7일
0

삽질 해결 노트

목록 보기
4/5
post-custom-banner

객체에 대한 이해가 부족한듯

export const postAddMovie = (req, res) => {
  let { title, synopsis, genres } = req.body;
  // let genresArr = genres.split(",");
  // addMovie({ title, synopsis, genresArr });

  genres = genres.split(",");
  addMovie({ title, synopsis, genres });
  

  return res.redirect("/");

위 코드에서 주석처리 되어 있는 것처럼 진행했더니 DB에서 값 꺼내올때 genres가 undefined로 날아 오더라. 아직까지 왜그런지 파악이 안되는데 느낌상으론 객체에 대한 이해가 부족해 그런것 같다.

나~중에 알게 되면 수정하러 와야겠다.

1) req.body에 들어 있는 변수를 묶어 객체 형태로 변수 생성
2) addMovie({}) 내부에 생성한 객체묶음 그대로 던짐
3-1) ✅ 여기서 생성한 이름 그대로 던질 때는 정상동작,
3-2) 🚨 이름을 바꿔서 던지면 undefined

  
  // DB에 저장하는 addMovie()
export const addMovie = ({ title, synopsis, genres }) => {
  if (typeof title !== "string" || typeof synopsis !== "string") {
    throw Error("❌  title and synopsis should be strings  ❌");
  }
  if (!(genres instanceof Array)) {
    throw Error("❌  genres should be an array  ❌");
  }
  const id = Math.floor(Math.random() * (title.length + Date.now()));
  movies = [{ id, title, synopsis, genres }, ...movies];
};
profile
TIL Blog - Today's Intensive Learning!
post-custom-banner

0개의 댓글