Javascript 如何在中间件中使用Y.mojito.models?
我在mojito mvc框架中使用nodejs 我是否可以从中间件访问一些全局变量?如何在中间件中使用Y.mojito.modelsJavascript 如何在中间件中使用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) {
// ./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-”,那么您的示例似乎可以运行。