Hapi.js - 如何获得渲染视图的序列化表示

Hapi.js - How do I get a serialized representation of a rendered view

我想 cache rendered views in Hapi.js (using the Vision plugin 渲染视图模板),但一直没能找到如何去做。我需要知道的是

  1. 如何获得渲染视图的序列化表示,我可以缓存它?
  2. 我应该如何使用从缓存中获得的序列化渲染回复客户端?

目前,无缓存,我响应客户端请求渲染视图的代码非常简单,基本上是这样的(不相关的代码被省略):

// renderIndex is a Hapi.js request handler
let renderIndex = (request, reply) => {
  [...]
  reply.view('serverSideIndex') // serverSideIndex is a .pug template
}

我在这里使用 reply.view 直接响应客户端的渲染视图。但是,我需要在此处注入缓存逻辑,以免呈现不必要的频率,从而优化性能。

如果我需要提供更多代码,请告诉我。

关于如何将视图渲染成序列化表示,是通过request.render方法完成的:

let renderedView = request.render('serverSideIndex')

至于将此序列化渲染返回给客户端,只需将其传递给回复函数即可:

reply(renderedView)