Instalace je snadná pomocí npm, jednoduše:
npm install mongoose-friends --save
S MEAN.JS nemám žádné zkušenosti, ale zdá se, že jde z větší části o sbírku generátorů pro vytvoření úhlové/expresní aplikace se vzorem CRUD. Zdá se, že následuje filozofie rámce vytvořit přátelství jako zdroj CRUD.
Pomocí yo
jak navrhují:
yo meanjs:crud-module friendship
To vygeneruje MVC pro model přátelství, ale vytvoří některé nesprávné předpoklady o modelu samotném, konkrétně že jde o model mongoose první třídy. S tímto pluginem tomu tak není. Přátelství jsou spíše součástí vložené kolekce v uživatelském záznamu, plugin pro ně poskytuje metody CRUD.
Nejprve přidejte plugin do svého uživatelského modelu.
// in app/models/user.server.model.js
var friends = require("mongoose-friends");
// ...
UserSchema.plugin(friends());
Vygenerovaný model na app/models/friendship
a odkazy na něj ve vygenerovaných souborech bude nutné odstranit. Místo Friendship
model, přátelství budou CRUD'd pomocí metod pluginu přidaných k vašemu User
model.
Ovladač vygenerovaný na adrese app/controllers/friendships.server.controller.js
bude pravděpodobně vyžadovat nejvíce změn.
create
, například by se změnilo z tohoto:
var friendship = new Friendship(req.body);
friendship.user = req.user;
friendship.save(callback);
Něco víc jako:
req.user.requestFriend(req.body.user, callback);
Trasy se mohou také změnit v závislosti na tom, jak vaše aplikace používá přátelství. Přátelství pluginu nejsou prvotřídním zdrojem, ale spíše vloženou sbírkou uživatele. Jako takové neexistuje žádné veřejné /friendships
například trasa. Buď by tato trasa musela vracet pouze přátele přihlášených uživatelů, nebo byste chtěli namapovat trasu přátelství specifickou pro daného uživatele, např. /users/ID/friendships
, v případě, kdy byla přátelství uživatele viditelná pro jiné uživatele než samotný uživatel.
Každopádně je to nepochybně žalostně neúplné a možná dokonce zavádějící, ale doufám, že to stačí, abyste mohli začít s implementací.