MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Installation du plugin mongoose friends avec MeanJS

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.