[TIL] 230611~12

김주희·2023년 6월 12일

내배캠 5주차 TIL

목록 보기
1/4

오늘의 목표

  1. Node.js 1주차 강의 듣기
  2. 알고리즘 풀기

▶️ Node.js의 특성 3가지

  • 논 블로킹 : 함수가 실행되는 중에도 다른 작업을 동시에 진행할 수 있음. 비동기 작업을 할 때 좀 더 효율적으로 할 수 있음.
  • 싱글 스레드 : 동시에 하나의 작업만 처리할 수 있음.
  • 이벤트 루프 : 싱글 스레드의 약점을 극복하기 위해 효율적으로 작업을 처리할 수 있는 특성.
  • 노드는 Javascript를 컴퓨터에서 브라우저 없이 실행하게 도와주는 환경을 의미!

▶️ Node 예제 : 쇼핑몰 장바구니 목록 조회, 추가, 수정, 삭제 구현

  • crud!!
router.put("/goods/:goodsId/cart", async (req, res) => {
  const { goodsId } = req.params;
  const { quantity } = req.body;

  const existsCarts = await Cart.find({ goodsId: Number(goodsId) });
  if (existsCarts.length) {
    await Cart.updateOne({ goodsId: Number(goodsId) }, { $set: { quantity:quantity } });
  }

  res.json({ success: true });
})
  • 강의를 보면서 예제를 따라했는데 quantity 값이 수정되지 않았다. 이유는 goodsId의 타입이 string이어서 난 오류 같았다. 예제를 다시보니 노션에 올라온 코드에서는 goodsId를 Number로 형변환해주고 있었기 때문! 이 부분을 수정해주니 완벽히 구현되었다! 찾는 값이 숫자일 경우 타입이 string일수도 있으니 이부분은 꼭 다시 확인해가며 코드를 짜는 걸로!
  • $set : 업데이트 경우 {찾는 값 : 수정하는 값}이기 때문에 $set으로 데이터를 수정하겠다라고 작성 ({quantity:quantity}(quantity를 quantitiy 값으로))

▶️ 알고리즘 풀기 : 배열 두 배 만들기
보자마자 map이 생각났다!

function solution(numbers) {
    let newNumbers = numbers.map(item => {
        return item * 2
    })
    return newNumbers;
}

처음에 오류가 났는데 마지막 newNumbers를 리턴하는 걸 까먹어서였다. 함수 마무리는 리턴값! 잊지 말쟈!

profile
꾸준히 하자

0개의 댓글