在Express - Node.js上激活缓存,可以通过以下几种方法:
Express 是一个基于 Node.js 的 Web 应用框架,可以使用第三方中间件来实现缓存。例如,可以使用 express-redis-cache
中间件来实现 Redis 缓存。
首先,安装 express-redis-cache
中间件:
npm install express-redis-cache
然后,在 Express 应用中使用该中间件:
const express = require('express');
const redisCache = require('express-redis-cache');
const app = express();
const cache = redisCache({
host: 'localhost',
port: 6379,
prefix: 'cache:',
});
app.use(cache.middleware());
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
Express 支持 HTTP 缓存,可以通过设置响应头来实现缓存。例如,可以使用 ETag
和 Last-Modified
头来实现缓存。
以下是一个使用 ETag
和 Last-Modified
头实现缓存的示例:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
const file = 'example.txt';
const stats = fs.statSync(file);
const etag = stats.mtime.toUTCString();
const lastModified = stats.mtime.toUTCString();
if (req.headers['if-none-match'] === etag || req.headers['if-modified-since'] === lastModified) {
res.status(304).send();
} else {
res.setHeader('ETag', etag);
res.setHeader('Last-Modified', lastModified);
res.sendFile(file);
}
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
在这个示例中,我们使用 fs.statSync()
方法获取文件的最后修改时间,并将其作为 ETag
和 Last-Modified
头的值。如果客户端发送的 If-None-Match
或 If-Modified-Since
头与服务器端的 ETag
或 Last-Modified
头匹配,则服务器返回 304 状态码,否则服务器返回文件内容并设置 ETag
和 Last-Modified
头。
总之,在 Express - Node.js 上激活缓存可以通过使用中间件或 HTTP 缓存来实现。
领取专属 10元无门槛券
手把手带您无忧上云