我正在使用 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();
//});
};
最佳答案
我强烈建议不要尝试这样做。这些是快速中间件,它们应该执行快速工作,有时是异步工作,但通常,如果请求是由 mojito 调度程序引擎处理,则不应尝试访问中间件中的运行时组件。
话虽如此,有一个内部 API(我再次强烈建议不要使用)可以让您访问全局 Y,该全局 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
是私有(private)的,我们可能随时更改它。
更新:mojito中有两种类型的中间件,传统的express
中间件和mojito中间件,后者必须以mojito-
为前缀,这些应该公开一个接收 config 并返回过渡的express 中间件的函数。如果没有前缀,它将只是根据请求调用而无需准备。
关于javascript - 如何在中间件中使用 Y.mojito.models?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15843965/