npm 包 hapi-scope-start 使用教程

阅读时长 4 分钟读完

介绍

hapi-scope-start 是一个用于 Hapi 框架的插件,可以管理请求级别的数据,并为每个请求创建单独的作用域。这可以方便地将数据隔离到各个请求中,避免数据混淆和污染全局命名空间。

该插件基于 Node.js 中的 domain 模块实现,但是在 Node.js v13.0.0 版本中已被废弃,因此 hapi-scope-start 可以替代它。

安装

使用 npm 安装 hapi-scope-start:

使用

在 Hapi 服务器上注册 hapi-scope-start 插件,就可以在请求处理程序中访问作用域:

-- -------------------- ---- -------
----- ---- - ----------------------
----- -------------- - ----------------------------

----- ------ - -------------
    ----- -----
    ----- -----------
---

----- -----------------
    ------- ---------------
    -------- --
---

--------------
    ------- ------
    ----- ----
    -------- --------- -- -- -
        ----- ----- - ------------------------------------------

        -- ---------
        ---------------- ---------

        -- ---------
        ----- ----- - -----------------

        ------ ------- --------
    -
---

----- ---------------

在请求处理程序中,通过 request.plugins['hapi-scope-start'].scope 获取当前请求的作用域。然后可以使用 set() 方法将数据存储在作用域中,使用 get() 方法从作用域中获取数据。

hapi-scope-start 还支持创建子作用域和将作用域绑定到域中。这些功能可以进一步提高数据隔离和管理:

-- -------------------- ---- -------
--------------
    ------- ------
    ----- ----------
    -------- --------- -- -- -
        ----- ----- - ------------------------------------------

        -- ------
        ----- ---------- - ---------------

        -- ----------
        --------------------- ---------

        -- ----------
        ----- ------ - ----------------- -- ---------

        -- ----------
        ----- ------ - ---------------------- -- -------

        ------ ---------
    -
---

--------------
    ------- ------
    ----- ----------
    -------- --------- -- -- -
        ----- ----- - ------------------------------------------

        -- ---------
        ----- ------ - ---------------------------
        ------------------
        ------------- -- -
            -- ----------------
            ------------------------------ -- -------
        ---

        ------ ---------
    -
---

在上面的示例中,首先使用 create() 方法创建子作用域,并在其中存储数据。然后在父作用域中使用 get() 方法获取数据时,会返回 undefined,因为该数据只在子作用域中可见。

接下来,在另一个请求处理程序中,将作用域绑定到 Node.js 域中,这可以确保在域中运行的代码可以访问作用域中的数据。

总结

hapi-scope-start 提供了一种方便管理请求级别数据的方法,可以避免数据被混淆和污染全局命名空间。通过使用 hapi-scope-start 插件和作用域对象,可以轻松实现数据的隔离和管理。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/50540

纠错
反馈