一段代碼,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
    }
})));

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章