강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

rrallvv .J님의 프로필 이미지
rrallvv .J

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

express.static 미들웨어

express.static 미들웨어 13:54초 질문입니다.

작성

·

214

1

이미지를 여러개 올릴 경우, 한개 올릴경우 if문으로 분기해주셨는데  if문 안에 2라인 코드 질문입니다.

const images = await Promise.all(~~~ =>Image.create)

post.addImages(images)

제가 생각했을 때 post.addImages(image주소)만 하면 정상적으로 작동할거 같은데 왜 image.create 를 하는지 궁금합니다.

Image.create는 디비에 image 주소를 넣어주는 함수고

addImages는 Post 테이블에 images를 추가해주는 거면

PostImages 테이블에는 관계가 언제 생성되는건가요?

답변 2

0

저도 이 부분을 궁금해 하던 찰나에 답글이 있었네요.

제가 댓글을 잘 이해를 못해서 한 번 더 여쭤볼게요.. 그 프론트에서 애초에 imagePaths에는 src 데이터( http://localhost:3065/이미지이름)이 들어있고 그거를 백엔드로 보내주는걸로 이해를 했는데요.

그럼 db에 담겨지는 데이터나 다루는 데이터들은 모두 이미지 데이터는 아니고 그냥 이미지가 저장되어있는 주소가 아닌가요?

db에는 로우데이터를 보통 넣지 않는다고 하셨는데

"Image.create는 Image 테이블에 로우로 이미지 데이터를 넣어주는 함수입니다."

이 문구도 헷갈리네요.

아마 제가 이해하기로는 create를 해주는 이유는 rawdata의 이미지 이름을 넣어주기 위함이고 그거를 사용해서 addImages를 할 수 있다. 단순 src의 주소를 가지고는 못 불러온다. 이게 맞을까요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

db에 담기는 건 이미지 주소(경로)입니다. create하는 건 게시글이랑 어떤 이미지랑 연관되어있는지 기록하기 위함이고, src의 주소 가지고도 불러올 수 있죠. 그게 그 파일의 경로니까요.

마지막 문구를 제가 이상하게 썼는데요.

        const image = await Image.create({ src: req.body.image });
        await post.addImages(image);

이 부분에서 addImages 부분을 src 주소로도 addImage가 되는지였어요.

post.addImage('http://localhost:3065/이미지이름);  이렇게요.

만약 create한 image값을 넣지 않고 프론트에서 바로 받은 주소를 넣는다고 생각하구요

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

그렇게 넣으셔도 되는데 프론트단에서 알맞게 렌더링하시면 됩니다.

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

PostImages 테이블은 처음에 시퀄라이즈가 associate 실행할 때 이미 생성되어 있습니다.

Image.create는 Image 테이블에 로우로 이미지 데이터를 넣어주는 함수입니다.

addImages같은 관계 함수는 addImages([아이디]) 또는 addImages([이미지테이블데이터])가 사용법입니다.

post.addImages([image테이블 로우 아이디])를 한다면 연결되겠지만

단순히 post.addImages([image주소])하면 연결되지 않습니다.

rrallvv .J님의 프로필 이미지
rrallvv .J

작성한 질문수

질문하기