노드에서 Express.js와 Mongoose로 REST API 빌드하기 - 모델 설계시 문제가 발생했습니다 - 모델이나 라우터에서 관계를 어디에 처리해야합니까?Express.js와 몽구스 모델 관계 - 모델 또는 라우터에서?
먼저 MVC에 익숙하지 않고 express.js가 전체 MVC가 아니지만 최고의 디자인 관행을 따르고 싶습니다.
문제는 비교적 쉽습니다. 앱에 사용자가 있고, 각 사용자가 여러 문서 (프로젝트, 주문 등)를 가질 수 있습니다. 분명히 나는 적어도 생성 된 모든 문서에 대한 사용자 ID를 저장해야합니다. 질문은 - 어디에서해야합니까?
각 라우터의 세션에서 사용자 ID를 가져와 문서에 첨부 할 수 있습니다. 또는 현재 사용자 ID를 전역 변수 (예 : app.currentUserID)로 설정하고 내 모델에서이를 사용하여 첨부 할 수 있습니다 ID를 문서에 넣는다.
실제로 사용자가 여러 조직을 가질 수있는 흥미로운 사례가 있으며 특정 조직에서 운영 할 때 사용자가 만드는 각 문서의 조직 ID를 설정해야합니다.
그래서 질문이 있습니다 : 라우터에서 이런 종류의 로직을 처리해야합니까? (익스프레스에는 '컨트롤러'가 없습니다.) 또는 모델입니까?
감사합니다, 의미가 있습니다. 또한 Yii PHP Framework의 소스를 살펴 보았습니다. 컨트롤러에서이 작업을 수행한다고 가정하더라도 모델의 이러한 종류의 작업을 처리하는 것으로 보입니다. – ragulka
이 글을 읽는 누군가에게 경고의 말을 전한다.'req' 객체에 접근 할 수 있다면 모델 내에서 현재 사용자 ID를 설정할 수있다. Mongoose는'req' 객체를 컨트롤러/라우트에서 모델 생성자로 전달할 방법이 없으므로 대신 내 컨트롤러에서 관계를 관리해야했습니다. 이 모든 것은 노드의 비동기 성질에 기인합니다. 모든 웹 사이트 사용자에 대해 설정되기 때문에 단순히'app.currentUser'와 같은 전역 변수를 설정할 수 없습니다. – ragulka