MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Instalowanie wtyczki Mongoose Friends z MeanJS

Instalacja jest łatwa dzięki npm, po prostu:

npm install mongoose-friends --save

Nie mam doświadczenia z MEAN.JS, ale wydaje się, że jest to w większości zbiór generatorów do tworzenia aplikacji kątowej/ekspresowej we wzorach CRUD. W związku z tym wydaje się, że podąża za filozofią ram, aby stworzyć przyjaźń jako zasób CRUD.

Używanie yo jak sugerują:

yo meanjs:crud-module friendship

Spowoduje to wygenerowanie MVC dla modelu przyjaźni, ale spowoduje pewne błędne założenia dotyczące samego modelu, a mianowicie, że jest to model mangusty pierwszej klasy. Z tą wtyczką tak nie jest. Przyjaźnie są raczej częścią kolekcji osadzonej w rekordzie użytkownika, wtyczka zapewnia dla nich metody CRUD.

Najpierw dodaj wtyczkę do swojego modelu użytkownika.

// in app/models/user.server.model.js
var friends = require("mongoose-friends");
// ...
UserSchema.plugin(friends());

Wygenerowany model w app/models/friendship , a odniesienia do niego w wygenerowanych plikach będą musiały zostać usunięte. Zamiast Friendship model, przyjaźnie będą CRUD'd za pomocą metod wtyczek dodanych do Twojego User model.

Kontroler wygenerowany w app/controllers/friendships.server.controller.js prawdopodobnie będzie wymagać największej zmiany.

create , na przykład zmieniłoby się z tego:

var friendship = new Friendship(req.body);
friendship.user = req.user;
friendship.save(callback);

Do czegoś bardziej jak:

req.user.requestFriend(req.body.user, callback);

Trasy również mogą wymagać zmiany, w zależności od tego, w jaki sposób aplikacja wykorzystuje przyjaźnie. Przyjaźnie wtyczki nie są zasobem pierwszej klasy, ale raczej osadzoną kolekcją użytkownika. W związku z tym nie ma publicznych /friendships na przykład trasa. Albo ta trasa musiałaby zwracać tylko znajomych zalogowanych użytkowników, albo chcesz zmapować trasę przyjaźni specyficzną dla użytkownika, np. /users/ID/friendships , w przypadku, gdy przyjaźnie użytkownika były widoczne dla osób innych niż sam użytkownik.

W każdym razie jest to bez wątpienia żałośnie niekompletne, a może nawet błędne, ale mam nadzieję, że to wystarczy, aby rozpocząć wdrażanie.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wymuszanie kontroli dostępu opartej na rolach za pomocą ClusterControl

  2. Nie udało się załadować rozszerzenia bson c++, używając czystej wersji JS

  3. findAndModify - MongoError:wyjątek:należy określić usunięcie lub aktualizację

  4. Wielokrotna aktualizacja Mongoose

  5. System.FormatException” wystąpił w MongoDB.Bson.dll — XXX nie jest prawidłowym 24-cyfrowym ciągiem szesnastkowym