我正在使用带有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();
//});
};
答案 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
中间件。如果没有前缀,只需在没有准备的情况下根据请求调用它。