1/11 TIL

taetae·2023년 1월 11일
0

내배캠 TIL

목록 보기
33/48

▶ 어떤 문제가 있었는지

문제 1


오늘의 코테 문제. for문을 사용해 답을 구해야한다라는 생각도 들었고

function solution(numbers) {
    for (let i = 0; i < numbers.length; i++) {

까지도 작성을 했으나 그 다음 각 원소에 두배한 원소를 구하는 값을 어떻게 적어야 할지 몰랐다.

문제 2

router.patch('/:id', async (req, res) => {
  const { id } = req.params;

  if (!req.body || !id) {   
    return res.json({ message: "데이터 형식이 올바르지 않습니다." }); 
  }
  const { userName, title, content, password } = req.body;

  const post = await Post.findById({id});   // 오류 난 부분

노드 입문주차 블로그 만들기 리뷰 강의를 보면서 기존 코드를 수정 중 만난 오류
코드를 맞게 작성했다고 생각하고 서버를 켜고 썬더에서 실행하면 서버가 꺼졌다.


▶ 내가 시도해본 것들

문제 1

일단 다른 for문 예시를 다시 읽어 보고 시도를 하려고 했다.

문제 2

코드를 다시 보면서 어느 부분이 문제인지 파악하려고 했다.


▶ 어떻게 해결 했는지

문제 1

function solution(numbers) {
    for (let i = 0; i < numbers.length; i++) {
        numbers[i] *= 2;
    }
    return numbers; 
}

numbers 배열에서 index i번째 값을 가져와 거기에 두배를 해준 뒤 다시 해당 index에 저장한 배열을 return.

문제 2

router.patch('/:id', async (req, res) => {
  const { id } = req.params;

  if (!req.body || !id) {   //body값이나  undefined거나 형식이 바르지 않을 때 err 내보내기
    return res.json({ message: "데이터 형식이 올바르지 않습니다." }); // 다음 코드가 실행되기 전에 코드가 실행돼야 하기 때문에 return 사용
  }
  const { userName, title, content, password } = req.body;

  const post = await Post.findById( id );   //findById를 통해서 id값을 찾게 될 때는 바로 id값을 지정해도 찾을 수 있다. 굳이 {}할 필요 없음.

findById 부분에서 id값을 ({id})라고 적었길래 (id)로 수정했더니 제대로 작동했다.


▶ 새롭게 알게된 것

문제 2

findById를 통해서 id값을 찾을 때는 이미 찾아야 할 값이 id라고 명시를 했기 때문에 바로 id값을 지정해도 찾을 수 있다.

0개의 댓글