首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >动态数据Express.JS的缓存控制

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

Stack Overflow用户
提问于 2014-08-23 21:58:45
回答 2查看 59.5K关注 0票数 45

如何在express.js on JSON response中设置缓存控制策略?

我的JSON响应根本没有变化,所以我想积极地缓存它。

我发现了如何对静态文件进行缓存,但不知道如何对动态数据进行缓存。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-24 01:40:27

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

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

另一种方法是简单地为路由中的JSON响应设置一个res属性,然后使用备用中间件(在错误处理之前)来呈现和发送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);
})

编辑:对于Express v4,从res.setHeader更改为res.set

票数 70
EN

Stack Overflow用户

发布于 2018-03-09 20:53:38

您可以这样做,例如:

res.set('Cache-Control', 'public, max-age=31557600, s-maxage=31557600'); // 1 year
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25462717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档