L'installation est facile via npm, simplement :
npm install mongoose-friends --save
Je n'ai aucune expérience avec MEAN.JS, mais il semble que ce soit pour la plupart une collection de générateurs pour créer une application angulaire/express à motif CRUD. En tant que tel, il semble suivre la philosophie du framework pour créer l'amitié en tant que ressource CRUD.
Utiliser yo
comme ils le suggèrent :
yo meanjs:crud-module friendship
Cela générera le MVC pour un modèle d'amitié, mais fera des hypothèses incorrectes sur le modèle lui-même, à savoir qu'il s'agit d'un modèle de mangouste de première classe. Avec ce plugin, ce n'est pas le cas. Au lieu de cela, les amitiés font partie d'une collection intégrée dans l'enregistrement de l'utilisateur, le plug-in leur fournit des méthodes CRUD.
Tout d'abord, ajoutez le plug-in à votre modèle utilisateur.
// in app/models/user.server.model.js
var friends = require("mongoose-friends");
// ...
UserSchema.plugin(friends());
Le modèle généré sur app/models/friendship
, et les références à celui-ci dans les fichiers générés devront être supprimées. Au lieu d'une Friendship
modèle, les amitiés seront CRUD via les méthodes de plugin ajoutées à votre User
modèle.
Le contrôleur généré à app/controllers/friendships.server.controller.js
nécessitera probablement le plus de modifications.
create
, par exemple changerait de ceci :
var friendship = new Friendship(req.body);
friendship.user = req.user;
friendship.save(callback);
À quelque chose de plus :
req.user.requestFriend(req.body.user, callback);
Les itinéraires peuvent également devoir changer, selon la façon dont votre application utilise les amitiés. Les amitiés du plugin ne sont pas une ressource de première classe, mais plutôt une collection intégrée d'un utilisateur. En tant que tel, il n'y a pas de public /friendships
parcours, par exemple. Soit cet itinéraire ne devrait renvoyer que les amis des utilisateurs connectés, soit vous voudriez mapper un itinéraire d'amitié spécifique à l'utilisateur, par ex. /users/ID/friendships
, dans le cas où les amitiés d'un utilisateur étaient visibles par d'autres que l'utilisateur lui-même.
Quoi qu'il en soit, c'est sans aucun doute terriblement incomplet et peut-être même erroné, mais j'espère que c'est suffisant pour vous aider à démarrer la mise en œuvre.