当前位置: 首页 > 面试题库 >

动态数据Express.JS的缓存控制

端木鹏
2023-03-14
问题内容

如何在JSON响应上的 express.js中* 设置 缓存控制 策略? *

我的JSON响应完全没有变化,因此我想积极地对其进行缓存。

我找到了如何在静态文件上进行缓存,但是找不到如何在动态数据上进行缓存


问题答案:

优雅的方法是res.set()在任何JSON输出之前简单地添加一个调用。在这里,您可以指定设置缓存控制标头,它将相应地进行缓存。

res.set('Cache-Control', 'public, max-age=31557600'); // one year

另一种方法是简单地res在路由中为JSON响应设置属性,然后使用后备中间件(错误处理之前)来呈现和发送JSON。

app.get('/something.json', function (req, res, next) {
  res.JSONResponse = { 'hello': 'world' };
  next(); // important! 
});

// ...

// Before your error handling middleware:

app.use(function (req, res, next) {
  if (! ('JSONResponse' in res) ) {
    return next();
  }

  res.set('Cache-Control', 'public, max-age=31557600');
  res.json(res.JSONResponse);
})

编辑:从改变res.setHeaderres.set的快递V4



 类似资料:
  • 数据缓存是指将一些 PHP 变量存储到缓存中,使用时再从缓存中取回。 它也是更高级缓存特性的基础,例如查询缓存 和内容缓存。 如下代码是一个典型的数据缓存使用模式。 其中 $cache 指向缓存组件: // 尝试从缓存中取回 $data $data = $cache->get($key); if ($data === false) { // $data 在缓存中没有找到,则重新计算它

  • setStorageSync 基础库1.3.9开始支持,iOS版本2.1.23,Android版本2.1.38 setStorageSync(string key, any data) ft.setStorage 的同步版本 参数 string key 本地缓存中指定的 key any data 需要存储的内容。只支持原生类型、Date、及能够通过JSON.stringify序列化的对象。 示例代

  • jd.setStorage(OBJECT) 异步接口,将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容。 OBJECT 参数说明: 参数 类型 必填 说明 key String 是 本地缓存中的指定的 key data Object/String 是 需要存储的内容 success Function 否 接口调用成功的回调函数 fail Function 否 接口调用失

  • 使用 rax-plugin-pwa 插件,可以方便快捷的使用 Service Worker 控制缓存,以获得更快的加载速度。 首先,安装 build-plugin-rax-pwa 插件依赖: $ npm install build-plugin-rax-pwa --save 在工程配置 build.json 中添加 pwa 插件并配置缓存目标: { "plugins": [ [

  • 假如要开发一个电子商务网站,商品的类别数据Category,是很少发生变化的,而几乎在每个网页,都需要显示商品类别。如果每次都要从mongoDB数据库中查询出商品类别,显然不是一个好主意。 bugu-mongo-cache模块,就是针对这种应用场景的:某个表的数据量很小,很少发生变化,但需要频繁的查询。这样的数据,我们希望能够“常驻内存”,既减少数据库的查询次数,又加快对用户的响应速度。 初始化

  • 什么是缓存? 高速缓存是一种将经常使用的数据/信息存储在存储器中的技术,因此,当下次需要相同的数据/信息时,可以直接从存储器中检索它而不是由应用程序生成。 缓存对于ASP.NET中的性能提升非常重要,因为页面和控件是在此处动态生成的。 这对于数据相关的交易尤其重要,因为这些交易在响应时间方面是昂贵的。 高速缓存将经常使用的数据放置在快速访问的媒体中,例如计算机的随机存取存储器。 ASP.NET运行