-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
프로필 리스트 구현중에 limit을 설정하면 에러가 발생해서여
21.03.01 17:35 작성 조회수 235
0
안녕하세여
프로필 리스트 출력 구현중에 라우터에서 팔로우 정보를 가져오는 부분에 limit을 설정하면 에러가 발생해서여
limit을 설정하면
ex)
const followers = await user.getFollowers({
attributes: ['id', 'nickname'],
limit: parseInt("3", 10),
});
아래처럼 id가 없다는 에러가 발생하는데이유를 모르겠어요 그전까지 없던 에러가 갑자기 발생하는데 에러 메세지를 봐도 어느 코드에서 에러가 발생했는지 잘 못찼겠어서 에러화면과 github 레포지터리 url을 첨부 하였습니다. 한번 봐주시면 감사여
그리고 두번째 질문은 pages/index.js에서 로그인 유저 정보를 불러왔어도 프로필 페이지에서 서버 사이드 렌더링으로 다시 서버 사이드 렌더링으로 로그인 유저 정보를 불러와야 되나여? 페이지 이동시에 state가 유직 안되는건가여?
알려주시면 감사여 ~!
git:
프로필 페이지:
front/pages/profile.js
팔로우 리스트 컴퍼넌트:
front/components/FollowList.js
답변을 작성해보세요.
1
조현영
지식공유자2021.03.01
다운로드 해서 디버깅해드릴 수는 없습니다. 어딘가에 오타일 것 같은데요. 진짜로 limit 부분만 빼면 제대로 동작하고, limit만 추가하면 에러가 발생하나요? 그러진 않을 것 같습니다. 모델 쪽은 문제 없고 라우터랑 프론트쪽만 보시면 될 것 같습니다.
1
조현영
지식공유자2021.03.01
req.user가 undefined인 것으로 봐서는 로그인이 안되었거나 쿠키가 전달안 된 것 같은데요.
프로필 페이지에서도 사용자정보 ssr로 가져와야합니다.
0
terecal
질문자2021.03.01
pages/index.js 코드를 복붙해서 해결하긴 했는데 뭐가 달라진건지 모르겠;;
아무튼 오타라는 힌트를 주셔서 문제를 해결할수 있었습니다 감사합니다 !
0
terecal
질문자2021.03.01
첫페이지에서 로그인 하고 프로필 버튼을 처음 누를때는 잘 출력되는데 한번더 누르면 로그인이 필요하데요 쿠키가 문제인가봐여 그러 서버 사이드 렌더링 부분이나 라우터 로직에서 뭔가 오타가 있나봐여 한번 잘 찾아볼게여 감사합니다
0
terecal
질문자2021.03.01
몇번을 다시 테스트 해봐도 limit을 걸기전에는 프로필 페이지가 잘 출력되여
일단 오타가 제일 의심되는것도 사실이라 잘찾아보겠습니다 감사합니다
0
terecal
질문자2021.03.01
네 req.user.id가 없나봐여 그런데 pages/index.js와 다르지 않은데 왜 여기서는 로그인 유지가 안되는걸까여 그리고 limit 설정을 걸기전에는 로그인 유지와 팔로우 리스트 출력이 잘되여 무엇이 문제인것일까여? ㅋㅋ;;
라우터 순서가 문제일수도 있을것 같아 제일 위로 올리고 limit을 그대로 limit: 3 이렇게도 해봤는데 잘안되더라구여 ㅋㅋ;; ㅈㅅ한데 git에서 다운받아 디버깅을 좀 해주시면 안될까여 ㅋㅋ;;;;;
혹시 모델쪽이 잘못된것일수도 있을까여 릴레이션 관계를 잘못 적었거나 아래 모델에서 뭔가 설정값이 잘못들어간것일까여 ??
module.exports = (sequelize, DataTypes) => {
// 아래처럼 User 객체를 생성하면 실제 디비상에서 유저 테이블로 매핑되며 email, nickname, password 필드가 자동 생성
const User = sequelize.define('User', {
// id는 테이블이 생성될때 기본적으로 설정되므로 코드로 필드 설정을 할필요 없다
email: {
type: DataTypes.STRING(30), // STRING, TEXT, BOOLEAN, INTEGER, FLOAT, DATETIME 등의 필드 타입이 존재
allowNull: false, // 필수
unique: true, // 고유한 값
},
nickname: {
type: DataTypes.STRING(30),
allowNull: false, // 필수
},
password: {
type: DataTypes.STRING(100),
allowNull: false, // 필수
},
}, {
charset: 'utf8',
collate: 'utf8_general_ci', // 한글 저장
});
User.associate = (db) => {
// User: Post => 1: n => db.User.hasMany(db.Post);
db.User.hasMany(db.Post);
// User: Comment => 1: n => db.User.hasMany(db.Comment);
db.User.hasMany(db.Comment);
// User: Post => m:n(through: 'Like') => User 가 좋아요 누른 게시글들 as Liked
db.User.belongsToMany(db.Post, { through: 'Like', as: 'Liked' })
// User : User => self(through: 'Follow') => user가 팔로우 하는 사람 as: 'Followers' user를 팔로잉 하는 사람 as: 'Followings'
db.User.belongsToMany(db.User, { through: 'Follow', as: 'Followers', foreignKey: 'FollowingId' });
db.User.belongsToMany(db.User, { through: 'Follow', as: 'Followings', foreignKey: 'FollowerId' });
};
return User;
};
답변 6