인프런 커뮤니티 질문&답변
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의 주소를 가지고는 못 불러온다. 이게 맞을까요?
마지막 문구를 제가 이상하게 썼는데요.
이 부분에서 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주소])하면 연결되지 않습니다.





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