📅  最后修改于: 2023-12-03 15:30:41.513000             🧑  作者: Mango
在 Express.js 中,req.stale
属性是一个布尔值,用于指示请求的响应是否已经过期。
当客户端请求资源时,服务器可以为该资源生成一个缓存响应。当客户端再次请求该资源时,服务器可以检查资源是否已被更新,如果没有更新,则可以使用缓存响应,而不必再次生成响应。
在 Express.js 中,req.stale
属性可用于判断当前请求的响应是否已过期。示例代码如下:
app.get('/resource', (req, res) => {
const isStale = req.stale;
if (isStale) {
// 返回缓存响应
} else {
// 生成新的响应
}
});
为了加快应用程序的响应速度,我们可以使用响应缓存。在 Express.js 中,可以使用以下两个响应头来设置响应缓存:
Cache-Control
:它是一个请求头,用于指示请求/响应缓存机制如何处理响应。常用的值包括 no-cache
、no-store
、max-age
等。ETag
:它是一个响应头,用于指示当前资源的版本号。当客户端再次请求该资源时,可以将该版本号发送到服务器,以检查资源是否已被更新。示例代码如下:
app.get('/resource', (req, res) => {
res.set('Cache-Control', 'max-age=300'); // 缓存响应 5 分钟
res.set('ETag', '12345'); // 设置版本号为 12345
const isStale = req.stale;
if (isStale) {
// 返回缓存响应
res.status(304).end(); // 使用 304 状态码表示资源未被更新
} else {
// 生成新的响应
res.send('Hello, world!');
}
});
req.stale
是 Express.js 中的一个属性,用于指示请求的响应是否已过期。Cache-Control
和 ETag
响应头来设置响应缓存。req.stale
来判断当前请求的响应是否已过期。