简体   繁体   English

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

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

I would like to cache rendered views in Hapi.js (using the Vision plugin for rendering view templates), but haven't been able to find out how to do it. 我想在Hapi.js中 缓存渲染的视图(使用Vision插件渲染视图模板),但是还没有找到如何做到的。 What I need to know is 我需要知道的是

  1. How do I get a serialized representation of a rendered view, which I can cache? 如何获得渲染视图的序列化表示形式,可以缓存它?
  2. How should I reply to the client with a serialized rendering that I got from the cache? 我应该如何使用从缓存中获取的序列化渲染来回复客户端?

Currently, cache-less, my code for rendering views in response to client requests is quite straightforward, basically like this (irrelevant code left out): 当前,在无缓存的情况下,我用于响应客户请求呈现视图的代码非常简单,基本上是这样的(无关的代码被省略了):

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

Here I'm using reply.view to directly respond with a rendered view to the client. 在这里,我使用reply.view直接以渲染视图响应客户端。 I need to inject caching logic here instead however, in order to not render more often than necessary and thereby optimize performance. 但是,我需要在此处注入缓存逻辑,以免出现不必要的渲染次数,从而优化性能。

Let me know if I need to provide more code. 让我知道是否需要提供更多代码。

Regarding how to render a view into a serialized representation, it's done through the request.render method: 关于如何将视图呈现为序列化表示形式,它是通过request.render方法完成的:

let renderedView = request.render('serverSideIndex')

As for responding with this serialized rendering back to the client, it's simply done by passing it to the reply function: 至于使用此序列化渲染返回给客户端的响应,只需将其传递给reply函数即可:

reply(renderedView)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM