【问题标题】:Installing mongoose friends plugin with MeanJS使用 MeanJS 安装猫鼬朋友插件
【发布时间】:2014-07-27 21:15:56
【问题描述】:

感谢您的支持!

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

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

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

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

一开始我不想发布这个问题,因为我认为这个问题可能问得太多或太宽泛,但后来我意识到这是一个基本的“如何安装插件?”题。新 MeanJS 用户可以从这类问题中受益。

【问题讨论】:

    标签: mongodb mongoose meanjs


    【解决方案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,如果用户的友谊可以被用户本人以外的人查看。

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

    【讨论】:

      猜你喜欢
      • 2018-10-26
      • 2013-05-06
      • 1970-01-01
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      • 2022-06-11
      相关资源
      最近更新 更多