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

标签 javascript node.js yui middleware mojito

我正在使用 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/

相关文章:

javascript - 使用Express Framework调试node.js : Troubleshooting missing res.结束

javascript - 如何从 Promise 中的函数返回新的 json

jquery - 在 Firefox 上开发的 Javascript 在 IE 上失败的典型原因是什么?

javascript - 如何获取所选选项的值并将其保存到变量中? (JavaScript)

javascript - 为什么定义的属性中的 "this"范围错误?

javascript - 仅选择带有 gulp 和 'main-bower-files' 的缩小文件?

javascript - 单击按钮/JQuery 时使 div 彼此相邻

javascript - 任何简单的方法来计算 Mongoose ?

javascript - 说服我从 YUI 2 切换到 YUI 3

javascript - 托管 Yui、Google map 、JQuery - 一种监控网站使用情况的简单方法?