Loopbackjs 环回:如何将模型的afterRemote添加到另一个模型

Loopbackjs 环回:如何将模型的afterRemote添加到另一个模型,loopbackjs,strongloop,loopback,Loopbackjs,Strongloop,Loopback,我有这样的通知模型 "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);

我有这样的通知模型

"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');
  });
};
但这是行不通的


注意:我可以在发布模型后执行此操作,但我想在通知模型中添加所有通知逻辑,以便简化和将来定制。

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

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

您可以使用事件进行整合

环回应用程序在加载所有引导脚本后启动时会发出
start
事件

通知
模型中,执行以下操作:

  "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
并在那里发出该自定义事件,然后在
通知
模型中侦听该事件。

您可以使用事件来执行此操作

环回应用程序在加载所有引导脚本后启动时会发出
start
事件

通知
模型中,执行以下操作:

  "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
并在那里发出自定义事件,然后在
通知
模型中侦听该事件。

我将对此进行检查。有没有办法不用启动脚本就在模型内部完成?或者我应该在我所有的模型加载后检查它。我会检查的。有没有办法不用启动脚本就在模型内部完成?或者我应该在所有模型加载后检查它。