npm 包 yar 使用教程

阅读时长 4 分钟读完

简介

yar 是一个基于 Hapi 的易于使用的 Session 管理器,提供了通用的 API,如 GET、HEAD、POST、PUT、PATCH、DELETE。它的设计利用了服务器的相对静态的初始内存消耗和高速缓存,以确保大量的客户端连接不会损害服务器的性能。此外,yar 还支持多种储存后端,如内存、Redis 等。

安装

使用 npm 安装 yar:

示例

下面是一个简单的示例,展示了如何使用 yar 来管理 Session。首先,我们需要在我们的 Hapi 服务器中注册 yar:

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

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

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

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

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

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

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

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

-------

在上面的示例中,我们在 Hapi 服务器上注册了 yar 插件,并在根路径中设置了一个 Hello World 的 Session 变量。

API

这里是 yar 的几个主要 API:

request.yar.set(name, value)

将值存到 Session 中。Session 对象用请求头 cookie 维护。任何支持序列化的值,例如字符串和数字,都可以存放到 Session 中。

当存储一个对象时,它将被字符串化为 JSON。如果 JSON 序列化失败,则将其记录到服务器控制台。

request.yar.get(name, [clear])

获取存储在 Session 中的值。如果不存在,则返回 undefined。

注意,当获取到 Session 的值时,将自动标识为已读取并不改变该值。如果您不希望该值在后续请求中重新使用,则可以传递一个 'clear' 参数。

request.yar.clear(name)

从回话中删除一个给定的值。

request.yar.reset()

从当前请求 Session 中清除所有值。

request.yar.touch()

“Touch” 整个 Session,更新其 cookie 到 cookieOptions.ttl。如果 ttl 为 0,则 Session 将在 窗口关闭 时终止。要异步执行 touch 以确保 cookieOptions.ttl 和 any defer 的修改已经奏效,可以传递一个可选的回调函数。

yar.cached(request)

返回领先的减慢和过时 Session 的 session 缓存实例,要使用该实例,请使用 request.yar.store.client.get() 代替 request.yar.get() 等。

request.yar.renew()

创建一个新 Session ID,并将旧 Session 中的数据保留在新 Session 中。

request.yar.flash(type, message, isOverride)

添加一个闪现通知。用于与下一次 Session 引用配合使用。 type - 将显示的消息类别。 message - 显示的消息。 isOverride - 覆盖任何先前的值。

结论

在本文中,我们介绍了 yar 的基本知识,以及它如何在 Hapi 服务器上使用。我们还提供了一些常见的 API,您可以快速开始使用 yar 更好地管理您的 Session。如果您想要掌握更多技能,请查看官方文档并使用 yar 进行实践。

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

纠错
反馈