npm 包 @hapi/yar 使用教程

阅读时长 6 分钟读完

在前端开发中,缓存是一个非常重要的话题。向后端服务器发送请求会占用宝贵的带宽和时间,通过前端缓存可以减少网络传输,提高用户体验。@hapi/yar 是一个用于服务端 Node.js 的轻量级和可扩展的缓存管理库,它提供了方便的 API 同时支持多个缓存媒介 (例如内存,硬盘,Redis 等)。

本文将介绍如何使用 @hapi/yar 包来建立缓存系统。内容将涵盖如下方面:

  • 安装和初始化 @hapi/yar
  • 存储和访问数据
  • 配置选项

安装和初始化

@hapi/yar 是通过 npm 包管理器进行安装。在控制台中输入以下命令即可安装:

在你的服务端应用中,引入 @hapi/yar 模块并且初始化。快速初始化的代码样例:

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

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

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

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

存储和访问数据

获取值

@hapi/yar 有一个名为 request.yar 的对象,用于存储和获取数据。获取缓存值不需要任何异步操作,同步地通过 request.yar.get(name, [options]) 完成。

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

设置值

设置缓存值可以同步或异步地进行。启用异步存储将使缓存内容更新操作变为异步操作。可以使用 Promise 或 callback 风格的函数将数据更新提交给缓存媒介。

另外,还有一个名为 request.yar.touch(name, [options]) 的方法,可以用来延长缓存过期时间。

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

删除值

你可以通过调用 request.yar.clear(name, [options]) 来删除指定的缓存值。如果省略 name,则将删除所有存储的缓存值。

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

配置选项

可以通过把配置传递给 await server.register()options 字段来设置 @hapi/yar

储存空内容

默认情况下,如果一个新的客户端连接到服务器时,@hapi/yar 将自动生成一个空缓存。可以通过设置 storeBlank 选项来禁用这个行为。

Cookie 配置

Cookies 是 @hapi/yar 的默认缓存媒介之一。可以通过 cookieOptions 设置来修改配置。

  • password: 验证 cookies 的密码。请不要直接在代码中使用实际的密码,而是使用独立的配置文件或环境变量。
  • isSecure: 如果在 HTTPS 上使用,请将其设置为true,以确保 cookies 无法被第三方窃听。

缓存存储介质

除了 Cookies 之外,@hapi/yar 还支持其他存储介质,例如内存,Redis 或本地磁盘。

-- -------------------- ---- -------
----- -------------------------
-----------------
  -
    ------- ----
    -------- -
      ------ -------------
      ---------- -
        ---- --------------------------
      -
    -
  -
-- ----- -- -
  -----------------
---
  • store: 缓存媒介。可以是内存,Redis 或本地文件系统。
  • storeOpts: 用于链接缓存媒介的选项。

结论

@hapi/yar 提供了方便的 API 和可扩展的缓存管理框架,可以在你的项目中方便地使用。使用 @hapi/yar,可以显著减少向前端用户发送的请求,降低服务器负载,提高响应速度和用户体验。

在使用过程中,需要注意防止缓存过期和数据被窃听或污染。同时,也可以通过适当的配置来优化缓存媒介和存储介质。

关于 @hapi/yar 的更多教程和示例,请查看 官方文档

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

纠错
反馈