이전 진행 상황
(이전 글 보기)
이전 글에서 기본적인 CRUD와 자료구조를 만든 과정에 대해 간략하게 기록했다.
현재까지의 진행 상황
1. 부트스트랩을 활용한 기본적인 디자인
부트스트랩을 활용해 기초적인 디자인을 구현했으며, ejs-mate를 설치 후 boilerplate.js를 활용해 뷰 파일을 간소화 했다.
2. 오류 및 데이터 검증 기능 구현
오류 발생시 지정된 오류 메시지를 별도의 페이지에 표출하는 기능을 만들었으며, joi를 활용해 데이터 검증 기능을 수행케 했다. 아울러 캠핑장 추가 기능 및 수정 기능에서 데이터가 입력되지 않으면 피드백 하는 기능을 구현했다.
joi 경고문이 영어로 나오는데, 한글로도 나오게 할 수 있는지는 차후 확인해 봐야 할 듯.
3. 리뷰 및 평점 기능 탑재
기본적인 리뷰와 평점 기능을 수행할 수 있게 새로운 기능을 추가하였다.
이전에는 이 부분마저 어려웠지만, colspan을 나눠서 한 화면을 2분할하여 표출할 수 있는 기능을 수행할 수 있게 하였다.
4. 라우트 경로 변경/ 세션 기능/ 플래시 메시지 구현
댓글, 게시글 라우트 경로를 별도의 파일로 분리해 app.js 파일을 간소화 했고 세션 기능을 만들었다.
또한 댓글 및 게시글 작성시 정상 동작 혹은 오류 여부를 플래시 메시지로 표출하게 만들었다.
주요 오류
1. mongoDB 관련: options usecreateindex, usefindandmodify 오류
설치된 mongoose가 6버전 이상이라 생기는 오류다.
6버전 이상에서는 usecreateindex: true, usefindandmodify: false가 기본값으로 설정되어 있는데, 강의(web deveolper bootcamp 2022)에서 사용된 내용은 mongoose 5버전이라 상관 없지만 현행 버전은 6버전이라 이러한 충돌이 발생하는 것.
항해99를 할 때 들은 스파르타 강의에서는 버전을 지정해 줬는데, 유데미 강의는 2022년에 개정됐다면서 버전 지정을 해 주지 않았다.
해결 방법
1. 강의 코드에 나온 package.json을 참고해 5.10.4 버전으로 mongoose를 설치한다.
npm i mongoose@5.10.4
2. 혹은 usecreateindex, usefindandmodify 두개 옵션을 삭제한다. (주석처리 하긴 했지만 몽구스 6버전 이상에서는 없어도 됨)
mongoose.connect("mongodb://localhost:27017/campermoa", {
useNewUrlParser: true,
// useCreateIndex: true, -> 몽구스 6버전 이상 지원하지 않음.
useUnifiedTopology: true,
// useFindAndModify: false, -> 몽구스 6버전 이상 지원하지 않음.
});
2. Cast to ObjectId failed for value XXX at path XXX for model XXX 오류(CastError)
라우트 파일을 분리하면서 경로 정리를 제대로 하지 않아서 생기는 오류다.
경로를 잘 정리해 주면 해결된다.
'기록 > 프로젝트' 카테고리의 다른 글
미완성된 프로젝트, jpndict (0) | 2022.08.20 |
---|---|
Campermoa 프로젝트 일기(5-完) (0) | 2022.08.19 |
Campermoa 프로젝트 일기(4) (0) | 2022.08.18 |
Campermoa 프로젝트 일기(3) (0) | 2022.08.17 |
Campermoa 프로젝트 일기(1) (0) | 2022.08.14 |