React-nodebird (15) - 쿼리 스트링과 lastId

장택진·2022년 11월 7일
0

React-nodebird

목록 보기
15/15

front/pages/index.js

front/sagas/post.js

쿼리스트링을 통해 데이터를 보낸다.

현재 스크롤을 내리면 같은 게시글을 계속 불러오는 버그가 있습니다. 여러 방법 중 lastId 방식으로 이 문제를 해결하는데, 먼저 mainPosts의 마지막(첫번째) 게시글의 id를 찾아서 이걸 lastId로 데이터를 전달해줍니다. 하지만, get방식은 데이터를 보낼 수 없기 때문에 넣으려면
쿼리스트링(/주소?key=${value})를 이용해야 됩니다.

back/routes/posts.js

쿼리스트링의 값은 req.query에 담겨있으므로 req.query.lastId를 백엔드에서 값으로 사용합니다. 또한, 서비스가 처음 시작되는 경우, lastId의 값이 undefined가 되어버려서 에러가 발생할 수 있습니다. 초기로딩이 아닐시에는 if(parseInt(req.query.lastId, 10)) 구문을 통해 게시글을 10개씩 가져오게 됩니다.

sequelize 공식 문서

lastId보다 작으면 게시글을 로드하게끔 하기 위해 sequelizeOperator를 이용합니다. 보통 아래같은 속성을 주로 사용합니다.

  • gt: 보다 큰
  • gte: 보다 크거나 같은
  • lt: 보다 작은
  • lte: 보다 작거나 같은
  • between: 사이에
profile
필요한 것은 노력과 선택과 치킨

0개의 댓글