如何在express.js on JSON response中设置缓存控制策略?
我的JSON响应根本没有变化,所以我想积极地缓存它。
我发现了如何对静态文件进行缓存,但不知道如何对动态数据进行缓存。
发布于 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
发布于 2018-03-09 20:53:38
您可以这样做,例如:
res.set('Cache-Control', 'public, max-age=31557600, s-maxage=31557600'); // 1 year
https://stackoverflow.com/questions/25462717
复制相似问题