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

Javascript 如何在中间件中使用Y.mojito.models?,javascript,node.js,yui,middleware,mojito,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) {

我在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();
    //});
};

我强烈建议不要这样做。这些都是快速中间件,它们被认为是快速工作,有时是异步工作,但一般来说,如果请求是由mojito dispatcher引擎处理的,您不应该尝试访问中间件中的运行时组件

也就是说,有一个内部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插件,
expose
方法

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


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

我试过了。但从未调用返回的函数。“module.exports”函数用作中间件。我按照以下方式配置它:如果我使用文件夹“{app dir}/middleware”并在文件前面加上“mojito-”,那么您的示例似乎可以运行。