조언 부탁드립니다. mini-project
현재 puppeteer-crawling해서
스타벅스메뉴와 이미지는 잘 긁어 왔는데요.
자꾸 MongoDB에 저장되어 있는 img를 불러올 때
에러가 발생하는데, 성공하신 분 있나요?
스키마에서 이미지 형식을 Buffer
했습니다.
import mongoose from "mongoose";
const StarbucksSchema = new mongoose.Schema({
name: String,
img: Buffer,
});
export const Starbucks = mongoose.model("Starbucks", StarbucksSchema);
//이미지 URL로부터 이미지 다운로드
if (!fs.existsSync("img_crawling")) {
fs.mkdirSync("img_crawling");
}
let fileName = `img_crawling/${menuName}.jpg`;
request(menuImage).pipe(fs.createWriteStream(fileName));
console.log(`이미지 ${fileName} 저장 완료`);
저는 fs모듈과 request모듈을 추가로 사용했는데,
이미지의 주소를 MongDB에 저장하고,
이미지는 별도의 폴더에 저장되게 만들었습니다.
질문 요약
1. MongDB에 이미지 저장할 때 fs라이브러리와 request라이브러리를 사용하게 맞나요?
2. 이미지를 저장은 잘 됐는데, 화면에 뿌려 줄려고 하는데 자꾸 에러가 나요.

3.몽고DB에 접속해서 이미지 주소를 가져와서, 그 주소를 기반으로 뿌려줘야 되는지
4.아니면 몽고DB에 접속해서 그 메타주소(?)를 기반으로 현재 컴퓨터에 저장된 이미지를 화면에 뿌려줘야 하는지
자꾸 구글링하면 몽고DB에 이미지파일을 직접적으로
저장하는 것은 DB에 무리를 일으킨다. 그래서 어떠한
라이브러리를 사용해서 DB에는 메타주소(?)만을 저장하고,
이미지파일을 별도의 localStorage에 저장한다.
또한 이미지를 그냥 가져(load) 올 수 없어서 인코딩을 해줘야 한다.
뭔 말인지 모르겠어요 ㅠ.ㅠ
답변 1
0
안녕하세요. 똑같이썼는데안돼님
해당 미니 프로젝트 과제에서는 이미지 파일을 직접 저장하지 않고, 강의에서 학습한 크롤링을 활용하여 이미지 태그가 가지고 있는 url만 데이터 베이스에 저장해야 합니다. 크롤링 시 이미지 태그 안의 url을 가져와 저장하는 방법을 고민해 보세요.
또한 데이터 베이스에 저장된 url을 API 응답에 잘 담기도록 작성해 준다면, 이후 과정은 프론트엔드 폴더 내부에서 처리중이니 해당 폴더의 menu.js 파일을 읽어보며 로직을 이해, 남은 과정을 수행해 보시길 바랍니다. 감사합니다.
그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?
0
86
2
강의 전체 소스 코드를 받고싶습니다.
0
77
2
fontawesome 사용 문의
0
81
2
소스 코드 부탁드립니다~
0
87
2
깃 레포지터리 소스
0
87
2
커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요
0
74
2
10-01 Entity TypeOrmModule.forRoot 에 entities
0
89
3
강의 버전관련 문의입니다
0
104
2
Ubuntu 설치 관련
0
62
1
schema.gql 질문 드립니다.
0
51
1
서버 재실행시 Many to Many
0
102
3
input 관련 문의
0
90
2
Rest API 보다는 graphql이 주된 내용인데
0
134
2
강의 전체 소스코드 받을수있을까요?
0
156
1
도커볼륨 마운트 관련
0
127
2
findOne 타입스크립트오류
0
109
1
http => htrtps 호출 인증서 신뢰 오류
0
356
1
self-signed certificate in certificate chain 에러 발생
0
421
1
mongoose 설치 오류
0
143
1
특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)
0
286
2
08-06
0
180
3
구조랑 패턴 관련해서 질문
0
126
2
mydocker
0
129
2
coolsms statuscode 2000 인데 전송안돼는 경우 확인.
0
156
1





