你如何在NodeJ中使用ZoneJ?

时间:2017-08-04 04:33:36

标签: node.js zonejs

我尝试使用Express在我的NodeJs api中设置区域。我有以下要求...

const Zone = require('zone.js/dist/zone-node.js');

以及以下中间件功能...

function setupAuthZone(req, res, next) {
    return Zone.current.fork({
        name: 'api',
        properties: {
            id: Math.random()
        }
    }).run(() => {
        next();
    })
}

我通过

使用
app.use(setupAuthZone);

当我在api中调用任何端点时,我得到"无法读取属性' fork'未定义"。区域对象没有任何悬挂,当然不是当前属性。

有人能指出我在NodeJs api中使用ZoneJ的一个非常简单的工作原理吗?我想为每个请求创建一个区域,并在该区域中设置一些变量,并在我的一些控制器操作中将其拉出,例如当前经过身份验证的用户。我想像使用请求上下文一样使用它。

更新

我已将要求改为

require('zone.js/dist/zone-node.js');

现在我有一个Zone.current。但我并不完全了解房产。如果我在护照中间件中设置Zone.current.currentUser,我可以将其拉回到别处,但我无法进入"属性"上面列出的财产。我在Zone.current上看不到它。另外,如果我将setupAuthZone函数更改为

function setupAuthZone(req, res, next) {
    return Zone.current.fork({
        name: 'api'
    })
    .run(() => {
        Zone.current.id = Math.random();
        next();
    })
}

当我查看Zone.current.id时,我以后无法看到id属性。它根本不在那里。我可以看到我设置的一些属性,但我无法看到其他属性。

0 个答案:

没有答案