본문 바로가기

기록/프로젝트

Campermoa 프로젝트 일기(2)

이전 진행 상황

(이전 글 보기)

이전 글에서 기본적인 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