如何在中间件中使用Y.mojito.models?

时间:2013-04-05 21:32:39

标签: javascript node.js yui middleware mojito

我正在使用带有mojito mvc框架的nodejs。

我是否可以从中间件访问一些全局变量?如何在中间件中使用Y.mojito.models?

// ./middleware/mymiddleware.js
module.exports = function (req, res, next) {

    // How to use Y?
    //Y.log('fails');
    //Y.mojito.models['MyModel'].fetch(function(err, data) {
    //    next();
    //});
};

1 个答案:

答案 0 :(得分:2)

我强烈建议不要尝试这样做。那些是快速中间件,他们假设做得很快,有时是异步工作,但一般来说,如果请求是由mojito调度程序引擎处理的,你不应该尝试访问中间件中的运行时组件。

话虽如此,有一个内部API(我强烈建议不再使用),它将允许您访问全局Y,它包含服务器端的所有YUI模块。像这样:

module.exports = function (config) {
   // then `config.Y.mojito.models['MyModel'].fetch()` is available here
   return function (req, res, next) {
      next();
   }
};

除此之外,如果您要寻找的是共享模型或公开全局模型的方法,您应该查看mojito-models-addon,expose方法。

同样,config.Y是私有的,我们可能随时改变它。

更新:在mojito中有两种类型的中间件,传统的express中间件和mojito中间件,它们必须以mojito-为前缀,这些应该是应该的公开一个接收config的函数并返回一个过渡express中间件。如果没有前缀,只需在没有准备的情况下根据请求调用它。