一段代码,koa如何使用koa-router-cache来缓存路由数据

koa-router-cache 可以用来缓存路由数据信息,可以使用内存或是redis进行数据缓存,对于内容页面来说,可以将页面缓存在内存中,以减少不必要的数据库请求。

koa-router-cache 使用的还是koa的插件生成方法,所以需要使用koa-convert转换成支持kao2的函数。

下面是使用内存级别的缓存,服务重启之后,缓存数据失效,可以使用redis缓存来进行持久化,redis配置可以直接参考koa-router-cache的文档进行配置。

// 配置使用路由请求缓存
const convert = require('koa-convert')  // 可以将不支持koa2的函数进行转换
const cache = require('koa-router-cache');
const MemoryCache = cache.MemoryCache;
app.use(convert(cache(app, {
    'GET /post/:id(\\d+).html': {
        key:  function *(){
            // key可以是字符串,也可以是generator函数,可以动态生成key
            return this.path
        },
        expire: 1000*60*60*24,
        get: function *(key) {
            logger.info('[已缓存缓存]',this.path)
            let cm = yield MemoryCache.get(key)
            return cm
        },
        set: MemoryCache.set,
        passthrough: MemoryCache.passthrough,
        evtName: 'clearIndexCache',
        destroy: MemoryCache.destroy
    }
})));

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值