fix: #8884, remove header/footer cache

This commit is contained in:
Barış Soner Uşaklı
2020-11-15 16:43:06 -05:00
parent 9dac9630df
commit e4d2764d4c
5 changed files with 11 additions and 73 deletions

View File

@@ -10,19 +10,10 @@ const translator = require('../translator');
const widgets = require('../widgets');
const utils = require('../utils');
const slugify = require('../slugify');
const cacheCreate = require('../cacheCreate');
const cache = cacheCreate({
name: 'header-footer',
max: 1000,
maxAge: 0,
enabled: global.env === 'production',
});
const relative_path = nconf.get('relative_path');
module.exports = function (middleware) {
middleware.headerFooterCache = cache;
middleware.processRender = function processRender(req, res, next) {
// res.render post-processing, modified from here: https://gist.github.com/mrlannigan/5051687
const render = res.render;
@@ -104,34 +95,14 @@ module.exports = function (middleware) {
async function renderHeaderFooter(method, req, res, options) {
let str = '';
const lang = getLang(req, res);
function getCacheKey() {
return [lang, method]
.concat(req.path.split('/').slice(0, 4))
.join('/');
if (res.locals.renderHeader) {
str = await middleware[method](req, res, options);
} else if (res.locals.renderAdminHeader) {
str = await middleware.admin[method](req, res, options);
} else {
str = '';
}
let cacheKey;
if (req.uid === 0 && res.locals.renderHeader) {
cacheKey = getCacheKey();
str = cache.get(cacheKey);
if (str) {
return str;
}
}
if (!str) {
if (res.locals.renderHeader) {
str = await middleware[method](req, res, options);
} else if (res.locals.renderAdminHeader) {
str = await middleware.admin[method](req, res, options);
} else {
str = '';
}
}
const translated = await translate(str, lang);
if (req.uid === 0 && res.locals.renderHeader) {
cache.set(cacheKey, translated, 300000);
}
return translated;
return await translate(str, getLang(req, res));
}
function getLang(req, res) {