インストールは 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
、フレンドシップはモデルに追加されたプラグイン メソッドを通じて CRUD されますUser
。
で生成されたコントローラは、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
、ユーザーの友情がユーザー自身以外のユーザーによって表示される場合などです。
とにかく、これは間違いなく悲惨なほど不完全であり、おそらく見当違いでさえありますが、実装を開始するのに十分であることを願っています.