通过 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
,在用户的友谊可以被用户本身以外的其他人查看的情况下。
无论如何,这无疑是非常不完整的,甚至可能是被误导的,但我希望这足以让你开始实施。