要求的Meteor范围变量

时间:2014-08-12 22:36:55

标签: meteor

我目前通过添加connectionHandler并为请求运行光纤来拦截对我的应用的请求:

var Fiber = Npm.require('fibers');

WebApp.connectHandlers.use(function (req, res, next) {
    Fiber(function() {
        // Custom request handling

        next();
    }).run();
});

作为我的自定义请求处理的一部分,我可以调用在Fiber本身之外定义的函数。有没有办法(没有直接传递连接处理程序中定义的变量),我可以获取并设置仅限于当前请求/光纤的变量?这与在光纤功能中简单设置variable = 'test';的情况下访问相同变量的每个请求相反。

1 个答案:

答案 0 :(得分:3)

没有记录,但Meteor.EnvironmentVariable似乎就是你想要的。这为您提供了单个光纤本地的动态范围变量。我自己从未使用它,但从查看源代码来看,似乎你会像这样使用它:

var envVar = new Meteor.EnvironmentVariable();

Fiber(function() {
    envVar.withValue(5, function() {
      subroutine();
    });
}).run();

function subroutine() {
  console.log(envVar.get()); // 5
}

您还可以查看Meteor源中的this test以获取更多示例。

我还找到this EventedMind screencast,但我无法访问它们。