sql >> データベース >  >> NoSQL >> MongoDB

MeanJSを使用したマングースフレンズプラグインのインストール

    インストールは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 、ユーザーの友情がユーザー自身以外の人に表示された場合。

    とにかく、これは間違いなくひどく不完全で、おそらく誤った方向に進んでいますが、実装を開始するのに十分であることを願っています。




    1. Queryable<T>をIMongoQueryに変換し直します

    2. Elasticsearchでインデックス作成中にマッピングを行う方法

    3. MongoDBユーザーのパスワードを変更するにはどうすればよいですか?

    4. Mongodb:onError値のない$convertでの配列からobjectIdへのサポートされていない変換