0

谢谢你的支持!

每次我为 mean.js 运行 Yeoman CRUD 脚手架时,它都会破坏我的应用程序。页面变成完全白色。因此,我不确定要在何处添加哪些文件以用于 CRUD 功能。

我希望用户能够像在 Facebook 上一样互相“加为好友”。有这个插件叫做猫鼬朋友。它看起来很有希望。问题是 git 存储库中没有包含示例 html 页面来引导我完成安装。看到有一个带有 plugin.js 和 status.js 的 lib 文件夹。那是服务器端还是客户端?我猜它去服务器端......

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

我如何将单个 js 文件中的所有这些代码分离到 MVC for MeanJS 中?

起初我不想发布这个问题,因为我认为这个问题可能问得太多或太宽泛,但后来我意识到这是一个基本的“如何安装插件?” 问题。新的 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模型,友谊将通过添加到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,在用户的友谊可以被用户本身以外的其他人查看的情况下。

无论如何,这无疑是非常不完整的,甚至可能是被误导的,但我希望这足以让你开始实施。

于 2014-06-19T17:46:31.880 回答