【问题标题】:Loopback: How to add afterRemote of a model to another modelLoopback:如何将模型的 afterRemote 添加到另一个模型
【发布时间】:2017-08-13 18:42:20
【问题描述】:

我有一个看起来像这样的通知模型

"use strict";

module.exports = function(Notification) {


};

我还有另一个模型是 Post:

"use strict";

module.exports = function(Post) {
   Post.prototype.postLike = function(options, cb) {
          this.likes.add(options.accessToken.userId);

          cb(null, "sucess");
   };

   Post.remoteMethod("postLike", {
    isStatic: false,
    accepts: [{ arg: "options", type: "object", http: "optionsFromRequest" }],
    returns: { arg: "name", type: "string" },
    http: { path: "/like", verb: "post" }
  });
}

我想要的是在通知模型中添加 post 的 afterRemote 方法?

是否可以环回?

它应该看起来像:

"use strict";

module.exports = function(Notification) {

  var app = require("../../server/server.js");
  var post = app.models.Post;

  post.afterRemote('prototype.postLike', function(context, like, next) {
    console.log('Notification after save for Like comment');
  });
};

但这不起作用。

注意:我可以自己发布模型,但我想在通知模型中添加我的所有通知逻辑以简化和未来定制。

【问题讨论】:

    标签: loopbackjs strongloop loopback


    【解决方案1】:

    你可以使用事件来做。

    Loopback 应用程序在加载所有引导脚本here 后启动时发出started 事件

    Notification 模型中这样做:

      "use strict";
    
        module.exports = function(Notification) {
    
          var app = require("../../server/server.js");
    
          app.on('started', function(){
          var post = app.models.Post;
          post.afterRemote('prototype.postLike', function(context, like, next) {
            console.log('Notification after save for Like comment');
           });
         });
        };
    

    或者创建一个启动脚本并发出一个自定义事件,例如“allModelsLoaded”。因此,请确保引导脚本是最后一个要运行的。默认情况下,引导脚本按字母顺序运行。所以创建z.js 并在那里发出自定义事件,然后在Notification 模型中监听该事件。

    【讨论】:

      【解决方案2】:

      循环启动过程首先加载模型,然后在加载所有模型后调用启动脚本。如果您的目标是跨模型整合事物,那么最好在启动脚本中执行此操作,而不是在 model.js 文件中。

      【讨论】:

      • 我会检查的。有没有办法在没有启动脚本的模型内部做到这一点?或者我应该在所有模型加载后检查它。
      猜你喜欢
      • 1970-01-01
      • 2021-04-25
      • 1970-01-01
      • 2014-03-13
      • 2020-11-13
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多