Middleware
-
getQueryToday I Learned 2020. 1. 8. 17:25
문제 미들웨어 구현 도중에 this 키워드로 값들을 불러오지 못한 오류가 발생했다. 해결 미들웨어를 적용할 함수들 중에서 이미 생성한 Schema 객체를 이용하는 것이 있고, 객체 안의 메소드만을 사용하는 것이 있다. 이미 생성한 객체를 이용할 경우, this 키워드로 값을 빼올 수 있지만, 객체 안의 메소드만을 사용할 경우, thisr가 아닌 getQuery를 이용해 함수의 입력 인자들을 받아서 사용할 수 있다. model/Likes.js 이 코드가 첫 번째 케이스이다. this 키워드로 전부 해결할 수 있다. 이 코드는 두 번째 케이스로 getQuery로 해결했다.
-
mongoose middleware 제작Today I Learned 2020. 1. 8. 17:16
문제 다른 document의 내용을 manual reference 통해 참조하는 방법을 채택하고 프로젝트를 진행했다. 그러나, 어떤 document가 삭제되었을 때, 이것을 참조하는 document에서는 cascade 하게 삭제되지 않는 문제가 발생했다. 해결 stackoverflow에서 비슷한 사례들을 찾아본 결과, 자체적으로 연쇄적으로 지워주는 기능을 수행하는 미들웨어를 제작하는 방법으로 해결했다. 그래서 model 폴더에 존재하는 각각의 파일들에 미들웨어를 제작해 사용했다. model/Comment.js 위의 코드는 getQuery를 통해 함수의 입력 파라미터를 받고, 두 번의 query를 이용해 User, board document에 필요없는 _id 값을 삭제하는 기능을 수행하는 미들웨어이다. 출..