Имеет этот файл, который отображает представления для маршрутов.Этот файл является частью многоязычного веб-сайта проекта.Я получаю JSON-объект перевода из API и сохраняю его в кэш-памяти в течение одного часа с помощью модуля кэш-памяти Express.Хорошо кэширует и загружает переводы.Но после того, как все 3 языка кэшированы, я не могу переключаться между ними.
Например: если бы я посещал веб-сайт с помощью префикса URI / en, он загружал бы его и кэшировал в памяти, а теперь я посещал тот же URL с использованием префикса URI / id (индонезийский), хорошо загружался и кэшировал его.снова.Но после кэширования объекта JSON я не могу переключиться с / id на / en.Я захожу на URL с помощью / en, но все равно он загружает переводы / id.
Вот файл контроллера маршрутов:
// Pre Configuration
const langHelper = require('./helpers/lang')
const cache = require('memory-cache')
// Globals
let defaults = {}
let lang = null
// View Loader
const loadPage = async (req, res, pageMetaData) => {
let locale = req.local;
// Caching Language Keys for Speeding Up the Process
if (cache.get(`lang-${locale}`) == null) {
lang = await langHelper.getLanguage(req, res)
// Cache Stays for One Hour
cache.put(`lang-${locale}`, lang, 3600000)
} else {
lang = cache.get(`lang-${locale}`)
}
console.log(cache.get(`lang-${locale}`));
// Default Pre-Defined Data for Views
defaults.page = pageMetaData.page
defaults.pageTitle = lang[pageMetaData.pageTitle]
defaults.siteURL = req.siteUrl;
defaults.lang = lang
// Render the View
res.render('layouts/main', defaults)
}
// Route Handlers
module.exports = {
home: (req, res, errors = null) => {
loadPage(req, res, {
page: 'home',
pageTitle: 'home_page_title',
errors: errors
})
},
error404: (req, res, errors = null) => {
loadPage(req, res, {
page: 'error404',
pageTitle: 'website_title',
errors: errors
})
}
}