1

我似乎找不到对旧的 self.loader 函数的引用,它允许我们使用 req.extras,现在是 req.data。

我尝试使用 enableMiddleware 创建一个简单的“撇号模块”扩展。这是代码

var _ = require('lodash');

module.exports = {
  extends:'apostrophe-module',
  construct:function(self,options){

    console.log("Construct ");
    self.enableMiddleware = function(){

      console.log("Enabling middlewares");
      self.apos.app.use(self.addDefaults);
    };

    self.addDefaults = function(req, res, next){

      console.log("running?");
      req.data.defaults = {"hello":"world"};
      return next();
    }


  }

};

(我不知道这是否是一个值得stackoverflow的howto问题,道歉)

这是在 2.0.0 中处理此问题的正确方法吗?

注意- 这个问题最初发布在这里撇号 CMS 论坛

4

1 回答 1

1

答案由boutell提供,这里是Apostrophe CMS 论坛

这是一个操作方法问题,实际上更像是一个堆栈溢出的东西,但没什么大不了的......

任何模块都可以有一个 pageServe 方法,如下所示:

self.pageServe = function(req, callback) { ... }

回调是可选的,如果您不需要做任何异步操作,您可以编写:

self.pageServe = function(req) { ... }

这完全按照旧加载器方法的方式调用,您可以做同样的事情 - 弄乱 req.data,根据 req.data.bestPage 和 req.data.remainder 设置 req.data.page(但请查看撇号-custom-pages 以获得更简单的方法)等。

Apostrophe 有许多这样的 callAll 方法,这些方法会在碰巧拥有它们的所有模块上自动调用。当前文档的一个问题是这些方法没有记录在一个中心位置,这使您更难找到有关该技术的信息。我们正在努力。

于 2016-11-20T15:36:43.837 回答