MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Installazione del plug-in degli amici di mangusta con MeanJS

L'installazione è facile tramite npm, semplicemente:

npm install mongoose-friends --save

Non ho esperienza con MEAN.JS, ma sembra essere per la maggior parte una raccolta di generatori per creare un'app angolare/espressa con motivo CRUD. In quanto tale, sembra seguire la filosofia del framework per creare l'amicizia come risorsa CRUD.

Usando yo come suggeriscono:

yo meanjs:crud-module friendship

Ciò genererà l'MVC per un modello di amicizia, ma farà alcune ipotesi errate sul modello stesso, vale a dire che si tratta di un modello di mangusta di prima classe. Con questo plugin, non lo è. Piuttosto le amicizie fanno parte di una raccolta incorporata nel record dell'utente, il plug-in fornisce loro metodi CRUD.

Prima di tutto, aggiungi il plug-in al tuo modello utente.

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

Il modello generato in app/models/friendship , e i riferimenti ad esso nei file generati, dovranno essere rimossi. Invece di un'Friendship modello, le amicizie saranno CRUD'd attraverso i metodi del plugin aggiunti al tuo User modello.

Il controller generato in app/controllers/friendships.server.controller.js probabilmente richiederà la maggior parte delle modifiche.

create , ad esempio cambierebbe da questo:

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

A qualcosa di più simile a:

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

Potrebbe essere necessario modificare anche i percorsi, a seconda di come l'applicazione utilizza le amicizie. Le amicizie del plugin non sono una risorsa di prima classe, ma piuttosto una raccolta incorporata di un utente. In quanto tale, non ci sono /friendships pubbliche percorso, per esempio. O quel percorso dovrebbe restituire solo gli amici degli utenti che hanno effettuato l'accesso, oppure vorresti mappare un percorso di amicizia specifico per l'utente, ad es. /users/ID/friendships , nel caso in cui le amicizie di un utente fossero visualizzabili da persone diverse dall'utente stesso.

Ad ogni modo, questo è senza dubbio tristemente incompleto e forse anche fuorviante, ma spero che sia sufficiente per iniziare l'implementazione.