0

ご協力ありがとうございました!

mean.js の Yeoman CRUD スキャフォールドを実行するたびに、アプリが壊れます。ページが完全に白くなります。そのため、CRUD機能のためにどのファイルをどこに追加すればよいか正確にはわかりません。

Facebook のように、ユーザー同士が「友だち」になる機能が欲しいです。mongoose friends というプラグインがあります。それは非常に有望に見えます。問題は、インストール手順を説明する git リポジトリにサンプルの html ページが含まれていないことです。plugin.js と status.js を含む lib フォルダーがあることがわかります。それはサーバー側またはクライアント側に行きますか? 私はそれがサーバーサイドに行くと推測しています...

https://github.com/numbers1311407/mongoose-friends

このすべてのコードを 1 つの js ファイルから MeanJS の MVC に分離するにはどうすればよいですか?

最初はこの質問を投稿したくありませんでした。質問が多すぎる、または範囲が広すぎると思ったからです。しかし、「プラグインをインストールするにはどうすればよいですか?」質問。新しい MeanJS ユーザーは、この種の質問から恩恵を受けることができます。

4

1 に答える 1

1

インストールは 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、ユーザーの友情がユーザー自身以外のユーザーによって表示される場合などです。

とにかく、これは間違いなく悲惨なほど不完全であり、おそらく見当違いでさえありますが、実装を開始するのに十分であることを願っています.

于 2014-06-19T17:46:31.880 に答える