0

我将 nodejs 与 mojito mvc 框架一起使用。

我可以从中间件访问一些全局变量吗?如何在中间件中使用 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();
    //});
};
4

1 回答 1

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-addonexpose方法。

同样,这config.Y件事是私人的,我们可能随时改变它。

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

于 2013-04-05T21:59:09.430 回答