首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Express - Node.js上激活缓存?

在Express - Node.js上激活缓存,可以通过以下几种方法:

  1. 使用中间件:

Express 是一个基于 Node.js 的 Web 应用框架,可以使用第三方中间件来实现缓存。例如,可以使用 express-redis-cache 中间件来实现 Redis 缓存。

首先,安装 express-redis-cache 中间件:

代码语言:txt
复制
npm install express-redis-cache

然后,在 Express 应用中使用该中间件:

代码语言:javascript
复制
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');
});
  1. 使用 HTTP 缓存:

Express 支持 HTTP 缓存,可以通过设置响应头来实现缓存。例如,可以使用 ETagLast-Modified 头来实现缓存。

以下是一个使用 ETagLast-Modified 头实现缓存的示例:

代码语言:javascript
复制
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() 方法获取文件的最后修改时间,并将其作为 ETagLast-Modified 头的值。如果客户端发送的 If-None-MatchIf-Modified-Since 头与服务器端的 ETagLast-Modified 头匹配,则服务器返回 304 状态码,否则服务器返回文件内容并设置 ETagLast-Modified 头。

总之,在 Express - Node.js 上激活缓存可以通过使用中间件或 HTTP 缓存来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券