inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

React로 NodeBird SNS 만들기

6-12. 게시글 이미지 표시하기

post.Images에 대해 질문드립니다.

140

pym7857

작성한 질문수 15

0

항상 질문에 대한 답변을 빠르게 해주셔서 감사합니다 제로초님~

강의를 듣다 궁금한게 생겨 질문 3개 정도를 드리려 합니다. 

■[질문 1]

강의 처음~1분대 쯤에 

(PostCard.js)

cover={post.Images[0&& <img alt="example" src={ `http://localhost:3065/${post.Images[0].src}` />}

이 부분에서 post.Images라는 속성을 사용했는데, 

이처럼 post.Images라는것이 가능한 이유가 

routes/post.js에서 

await newPost.addImages(images);

위와 같이 (sequelize에서 post테이블과 image테이블의 관계를 보고 제공하는) addImages()라는 메서드가 post객체에 images라는 속성을 만들었기 때문이라고 보면 되나요 ?

즉, addImages()라는 메서드가 사용될때, post.Images가 가능해지는것인지가 궁금합니다.  

■[질문2]

(routes/post.js)

/* 방법2: db에서 불러와서 프론트로 전달 */
        const fullPost = await db.Post.findOne({
            where: { id: newPost.id },
            /* include: 게시글 불러올때 user정보와 image정보도 같이 불러온다. */
            include: [{
                model: db.User, // 게시글과 연관된 사용자만 가져온다. (=게시글과 연관된 사용자는 글쓴이 딱 한명이다.)
                                // include를 이렇게 '명시'해주면, Post에 User라는 속성을 달아줌.
                                // -> (PostCard.js) post.User.nickname[0].. 이런식으로 사용가능 !!
            }, {
                model: db.Image,    // 프론트에서 Post.Image 로 사용가능 
            }],
        });

위와 같이 include속성을 사용할때 역시, post객체에 Image라는 속성이 만들어지는건가요 ? 

즉, 이렇게 include 로 선언했을때도 post.image가 가능해지는것인지 궁금합니다.

■[질문 3]

addHashtag()나 addImage()같은 메서드는 sequelize에서 관계를 보고나서 알아서 만들어주는 메서드라고 하셨는데, 

예를들어 models/post.js에서

// 관계 설정 
    Post.associate = (db) => {
      db.Post.belongsTo(db.User); // belongsTo: 테이블에 UserId 컬럼이 생겨요
      db.Post.hasMany(db.Comment);
      db.Post.hasMany(db.Image);
      db.Post.belongsTo(db.Post, { as: 'Retweet' }); // Post,Post 테이블 이름 똑같아서, 구별 안될때는 as
                                                      // belongsTo: 테이블에 RetweetId 컬럼이 생겨요
      db.Post.belongsToMany(db.Hashtag, { through: 'PostHashtag' });
      db.Post.belongsToMany(db.User, { through: 'Like', as: 'Likers' });
    };

위와같이 관계가 설정되어있는데, post와 image가 hasMany로 연결되어있는것을 확인할 수 있는데요. 

이때, sequelize에서 addImage() 매서드를 만들어주는것은 이해가 되는데, 복수형인 addImages() 메서드도 이때 같이 만들어지는건가요?

즉, 항상 복수형 메서드도 같이 만들어지는것인지 궁금합니다.

javascript react

답변 1

1

제로초(조현영)

1. add한건 연결만 한 것이고 post.Images는 include image를 했기때문에 불러올 수 있었습니다.

2번 답도 되었네요. include가 객체로 만드는 역할입니다.

3번은 다대다나 1대다 관계에서는 단수형 복수형이 만들어집니다. 1대1관계에서는 복수형이 없겠죠?

next 10 이상에서는 redux dev tool 구동이 안되나요?

0

272

1

세션 갱신 문의 건

0

482

7

배포 진행 후 Highlight updates components render 표시

0

445

1

똑같은 기능을 하는 테이블

0

447

4

관계형

0

312

2

프론트 서버를 이용하지 않는경우

1

299

3

인피니트 스크롤링 사용시 오류

0

278

0

계속 이런에러가 떠서 해결하기는 했는데 어떤 의미인지 모르겠습니다.

0

433

2

req.user가 언제 생성되나요??

0

330

2

Cannot read property 'id' of null 에러

0

333

1

리트윗한 게시글 불러오는 sequelize

0

252

1

result.data에서 images인 이유

0

281

2

takeLatest에 대한 질문입니다.

1

342

2

프론트에서 express를 사용하지 않을때 동적라우팅

0

501

6

getInitialProps가 클라이언트에서 수행되는 이유?

0

258

1

리로드하면 팔로우 언팔로우 값이 초기화 되는 문제입니다.

0

445

2

스타일드 컴포넌트와 className을 통한 스타일 적용의 차이에 대해 궁금합니다

0

585

2

할인 쿠폰 사용이 안되는되요 (848-f9af83f183e3)

0

365

1

nodejs mvc 패턴

0

975

4

사용하고 보니, 람다 구성이 궁금합니다!

0

266

1

제로초님

0

445

1

새로고침 로그인 풀림 문제.

0

247

1

안녕하세요. 강의 너무 감사합니다

0

157

1

제로초님

0

170

1