개발하고 싶은 초심자

4-2. 220610 전체 게시글 조회 및 마이페이지에서 사용자 정보 조회(2) 본문

Project in Codestates/Final Project

4-2. 220610 전체 게시글 조회 및 마이페이지에서 사용자 정보 조회(2)

정새얀 2022. 6. 10. 15:51

전체 게시글을 조회할 때는 사용자의 닉네임(userName)만 가져오고 싶었고, 마이페이지에서 사용자 정보 조회를 할 때는 사용자가 업로드한 게시물들의 정보까지 같이 가져오고 싶었다.

어제까지 해결하지 못했던 두 가지 문제를 오늘 해결할 수 있었다.

 

1. 마이페이지에서 사용자 정보 조회 시 게시물 정보까지 가져오기

const { 사용자, 게시물 } = require('../../models');
const { 토큰관리하는함수 } = require('../tokenFunctions');

module.exports = async (req, res) => {
  // 토큰을 검증하는 변수를 하나 선언하여 req를 할당해준다(이하 verify)
  if (!verify) {
    // 검증이 되지 않으면 400코드로 응답한다
  } else {
    // 사용자 모델에서 내가 원하는 attributes를 작성하고
    // where절을 통해 찾을 수 있게 해준다(이하 userInfo)
    // 그 다음 post의 정보를 가져오게 하기 위해 findAll()메소드를 사용한다(이하 uploads)
    if (!userInfo) {
      // 사용자 정보가 제대로 되지 않은 경우 400코드로 응답한다
    } else {
      // data에 담고 싶은 정보를 userInfo안에 넣어준다
      // data에 userInfo와 uploads를 넣어주고 200코드로 응답한다
    }
  }
};

 

 

2. 전체 게시글 조회할 때 사용자 닉네임 정보 가져오기

마이페이지에서 게시글 정보를 가져왔을 때처럼 비슷하게 로직을 구현했다.

다만 처음에는 게시글을 조회할 때 로그인을 하지 않아도 리스트가 보일 수 있도록 구현했는데 수정하면서 토큰을 검증받아야 하는 경우가 새로 생겼다.

로그인을 하지 않은 경우에도 게시글은 조회할 수 있도록 만들고 싶은데 아직까지 해결 방법을 알아내지 못했다.

 

const { 사용자, 게시물 } = require('../../models');
const { 토큰관리하는함수 } = require('../tokenFunctions');

module.exports = async (req, res) => {
  // 토큰을 검증하는 변수를 하나 선언하여 req를 할당해준다(이하 verify)
  if (!verify) {
    // 검증이 되지 않으면 400코드로 응답한다
  }
  // 게시물 모델과 사용자 모델에서 findOne()메소드를 사용한다(이하 allPosts, userInfo)
  if (allPosts) {
    // 게시글을 조회하는 것을 성공했을 경우 200코드와 함께 allPosts와 userInfo를 data안에 넣어준다
  } else {
    // 조회에 실패한 경우 400코드를 응답으로 보내준다.
  }
};

 

포스트맨으로 GET 요청을 보냈을 때 성공적으로 응답을 받아올 수 있었다.

Comments