sql >> Base de Datos >  >> NoSQL >> MongoDB

Instalación del complemento de amigos de mongoose con MeanJS

La instalación es fácil a través de npm, simplemente:

npm install mongoose-friends --save

No tengo experiencia con MEAN.JS, pero parece ser en su mayor parte una colección de generadores para crear una aplicación angular/expresa con patrón CRUD. Como tal, parece seguir la filosofía del marco para crear la amistad como un recurso CRUD.

Usando yo como sugieren:

yo meanjs:crud-module friendship

Esto generará el MVC para un modelo de amistad, pero hará algunas suposiciones incorrectas sobre el modelo en sí, a saber, que es un modelo de mangosta de primera clase. Con este complemento, no lo es. Más bien, las amistades son parte de una colección incrustada en el registro del usuario, el complemento proporciona métodos CRUD para ellos.

En primer lugar, agregue el complemento a su modelo de usuario.

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

El modelo generado en app/models/friendship , y las referencias a él en los archivos generados, deberán eliminarse. En lugar de una Friendship modelo, las amistades se CRUD a través de los métodos de complemento agregados a su User modelo.

El controlador generado en app/controllers/friendships.server.controller.js probablemente requerirá el mayor cambio.

create , por ejemplo, cambiaría de esto:

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

A algo más como:

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

Es posible que las rutas también deban cambiar, dependiendo de cómo su aplicación use las amistades. Las amistades del complemento no son un recurso de primera clase, sino una colección integrada de un usuario. Como tal, no hay /friendships públicas. ruta, por ejemplo. O esa ruta necesitaría devolver solo los amigos de los usuarios que iniciaron sesión, o desearía mapear una ruta de amistad específica para el usuario, p. /users/ID/friendships , en el caso de que las amistades de un usuario fueran visibles para personas distintas al propio usuario.

De todos modos, esto es sin duda lamentablemente incompleto y tal vez incluso equivocado, pero espero que sea suficiente para comenzar con la implementación.