如何在NodeJS / Express中缓存图像?

时间:2018-03-08 23:31:26

标签: node.js express caching

这个网络应用程序从网络上检索图像,特别是favicon。因此,每次刷新页面时,都会向网站发出请求,并再次获取图标。

这是我传递URL的功能; favicon()a library,它会从网站/网页上删除它,然后将其返回。

router.get('/feedicon', function(req, res) {

    favicon(req.query.url, function(err, icon) {

        if (icon) {
            res.send(icon);
        } else {
            res.status(500).send('No icon found');
        }

    });
});

现在,如果找到有效的icon文件,那么

会很不错
  • 确保存在/cache目录/创建它(如果不可能则返回错误);
  • 检查icon目录中是否有/cache;
  • 如果没有,请使用某种独特的时间戳保存在那里,并从那里提供服务;
  • 如果是,请从那里开始服务。

我宁愿不安装lib来做到这一点,事实上我磕磕绊绊的是最好的方式来获得"唯一的时间戳"缓存的图像,以确保提供正确的文件..?

如果我use a hash对文件进行身份识别,我也会担心表演。?

快速缓存此类文件的最佳做法是什么?我很难搜索它,几乎没有人需要在NodeJs / express中缓存动态图像..?

1 个答案:

答案 0 :(得分:2)

这是一个简单的示例,用于缓存我存储图像的文件夹public

const cacheTime = 86400000 * 30 // the time you want
const path = require('path')
.
.
.
.
app.use(express.static(path.join(__dirname, 'public'), {
 maxAge: cacheTime
}))