NodeJS(4기) 23,24일차

형집·2022년 12월 16일

NodeJS(4기)

목록 보기
32/56

오늘은 금요일 과제 제출 날

그동안 위기가 많이 있었다.

//게시글 상세조회 api _id로 상세조회 할꺼야
router.get("/posts/:_id", async (req, res) => {
    try{
        const postsId = req.params._id;   
        const posts = await Posts.find({_id : ObjectId(postsId)},{user:1,title:1,content:1,createdAt:1});
        res.status(200).json({posts});
    } catch(err){
        res.status(400).json({
            success:false,
            errorMessage:"데이터 형식이 올바르지 않습니다.",
        });
    }
})

param으로 id를 받아와서 그 id의 게시글을 상세조회하는 api다.
잘 완성했지만 굉장한 시간을 잡아먹었다.

내가 한참 고민하고 고민하던 상황

상황


당시 고민은 posts를 출력하면 나오는 json array에서 _id만 빼와서 비교를해 find함수로 하나만 찝는 것이었다.
저 param으로 받아온 objcetid("639acd~")랑 화면 posts안에 있는 _id랑 비교를 하려고 했지만 실상은 _id도 꺼내지 못했다.

도움받으러

이것저것 구글링 계속 해보다가 아 도저히 아 안되겠다..
전전팀 에이스였던 천기님과 코드를 같이 봤다.

2가지가 문제였다.


  • 요걸 objectid 그냥 쓰면 되는데 계속
    localhost:3000/posts/objcetid("639acd~")을 써서 objcetid("639acd~")랑 new objcetid("639acd~")를 비교하러 했다.

  • 바뀐 url을 params으로 받아오면 639acd~ 이런 형태이다. 이걸 objectId로 감싸면 Posts.find({_id : ObjectId(postsId)},


짠 이런 형태가 된다!!

게시판 상세조회를 끝낸 후 제거 수정 완료!

게시판의 댓글 post를 하던 중 2번째 위기가 왔다.
아니 댓글이 하나만 달리는 것이다.

2번째 댓글부터는


스키마 설계를 안하고 만들어서 키가 중복되었나..?
시간이 없어서 일단
댓글 조회 수정 삭제를 완성했다.

굉장히 찝찝하게 완성한 후 서버와 연결해서 배포를 하려고 했다.
mysql이랑 aws도 연결 해보았으니 금방이지 하고 시작한 나는 3번재 위기를 맞앗다.
강의에서 알려주는 연결은 우분투를 사용한 연결이었다.
아 나는 리눅스 안쓰는데 우분투를 어떻게 사용하지?
윈도우에서 연결 가능한 게 있나?
못찾고
윈도우에서 우분투 연결하기를 시도했는데 그마저도 우분투를 설치하고 강의대로 해보려는데 계속 같은 명령어를 사용해도 결과가 달랐다...
결국 서버와 연결을 못하고 깃만 제출

til을 쓸 여유가 없었다

이번 개인 프로젝트
https://github.com/KimHyungJip/node_introduction.git

profile
개발자

0개의 댓글