• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

작동은 잘 되는데 이해가 안되는 부분이 있어 질문 드립니다.

21.09.02 14:59 작성 조회수 90

0

안녕하세요 제로초님

해쉬태그 클릭 검색하면 해당 해쉬태그 나오는 것을 구현하다 햇갈리는 부분이 있어 질문 드립니다.

개시물의 사용자를 누르면 해당 사용자의 글만 뜨는것을 구현 할때는 router.get으로 try 안에 

let where = {
            UserIdparseInt(req.params.id10),
            RetweetIdnull,
       };
if (parseInt(req.query.lastId10)) {
            where[db.Sequelize.Op.lt= parseInt(req.query.lastId10)
       }

이 let where 를 통해 라스트아이디가 없을 경우를 대비했는데

이번 해쉬태그 강의 에서는 

let where = {}
if (parseInt(req.query.lastId10)) {
      where = {
        id: {
          [db.Sequelize.Op.lt]: parseInt(req.query.lastId10),
        }
      }
   }

let where를 이렇게 빈칸으로 두는 이유가 뭔지 궁금합니다ㅜ

근데 이렇게 해도 작동은 되는데 원래 저렇게 빈칸으로 두면 모든 게시물을 다 찾는거 아닌가요??

답변 1

답변을 작성해보세요.

0

전부다 찾는 건 아니고 가장 최근 10개를 찾는 것입니다. 아래 limit, order 옵션으로 인해서요.

문종현님의 프로필

문종현

질문자

2021.09.02

근데 where에 찾는 조건을 넣잖아요??

만약에 라스트 아이디가 없다면 그럼 where의 조건은 빈칸으로 갈텐데 어떻게 가장 최근의 해시태그를 찾게 되는건가요??

문종현님의 프로필

문종현

질문자

2021.09.02

아 혹시 router.get 안에 include로 db.Hashtag를 넣어줘서 그걸로 해시태그 정보를 가져와서 화면에 선택한 해당 해시태그만 구현되는건가요?? ??

const posts = await db.Post.findAll({
      where,
      include: [{
          modeldb.Hashtag,
          where: { namedecodeURIComponent(req.params.tag)}
     }, {

이 부분이요!

더 아래 order와 limit 조건도 있잖아요.

https://github.com/ZeroCho/vue-nodebird/blob/master/ch5/back/routes/hashtag.js#L41

문종현님의 프로필

문종현

질문자

2021.09.03

예 있습니다!

그래서 include에서 db.Hashtag로 포함한 정보를 order와 limit조건으로  10 개를 우선해서 가져오는 건가요??

"우선해서" 라는 게 뭔지는 모르겠습니다. 그냥 열 개만 추려서 가뎌오는 겁니다.

문종현님의 프로필

문종현

질문자

2021.09.03

아 제가 말을 햇갈리게 한거같네요!ㅜ 우선이란건 최근의 해시태그를 10개를 추려서 가져온다는 말이었습니다.

그럼 백엔드 router.get 내부 include의 db.Hashtag를 통해서 얻은 정보를 order limit조건으로 10개만 추려서 가져오는걸로 이해하면 되는건가요??