インストールはnpm経由で簡単です:
npm install mongoose-friends --save
私はMEAN.JSの経験はありませんが、ほとんどの場合、CRUDパターンのAngular/Expressアプリを作成するためのジェネレーターのコレクションのようです。そのため、CRUDリソースとして友情を築くためのフレームワークの哲学に従っているようです。
yo
を使用する 彼らが示唆するように:
yo meanjs:crud-module friendship
これにより、友情モデルのMVCが生成されますが、モデル自体についていくつかの誤った仮定が行われます。つまり、それはファーストクラスのマングースモデルであるということです。このプラグインでは、そうではありません。友情はユーザーレコードに埋め込まれたコレクションの一部であり、プラグインはそれらにCRUDメソッドを提供します。
まず、プラグインをユーザーモデルに追加します。
// in app/models/user.server.model.js
var friends = require("mongoose-friends");
// ...
UserSchema.plugin(friends());
app/models/friendship
で生成されたモデル 、および生成されたファイル内のそれへの参照は、削除する必要があります。 Friendship
の代わりに モデル、友情は、User
に追加されたプラグインメソッドを介してCRUDされます モデル。
app/controllers/friendships.server.controller.js
で生成されたコントローラー ほとんどの変更が必要になる可能性があります。
create
、たとえば、これから変更されます:
var friendship = new Friendship(req.body);
friendship.user = req.user;
friendship.save(callback);
次のようなものに:
req.user.requestFriend(req.body.user, callback);
アプリケーションが友情をどのように使用するかによっては、ルートも変更する必要がある場合があります。プラグインの友情は一流のリソースではなく、ユーザーの埋め込みコレクションです。そのため、公開されている/friendships
はありません。 たとえば、ルート。そのルートは、ログインしているユーザーの友達だけを返す必要があるか、ユーザーに固有の友情ルートをマップする必要があります。 /users/ID/friendships
、ユーザーの友情がユーザー自身以外の人に表示された場合。
とにかく、これは間違いなくひどく不完全で、おそらく誤った方向に進んでいますが、実装を開始するのに十分であることを願っています。