Main functions
This commit is contained in:
44
server.js
44
server.js
@@ -26,19 +26,6 @@ i18n.configure({
|
||||
// i18n middleware
|
||||
app.use(i18n.init);
|
||||
|
||||
// Middleware для передачи переменных в шаблоны
|
||||
app.use((req, res, next) => {
|
||||
const currentLang = req.session?.language || req.getLocale() || 'ru';
|
||||
req.setLocale(currentLang);
|
||||
|
||||
res.locals.locale = currentLang;
|
||||
res.locals.__ = res.__;
|
||||
res.locals.theme = req.session?.theme || 'light';
|
||||
res.locals.currentLanguage = currentLang;
|
||||
res.locals.currentPage = req.path.split('/')[1] || 'home';
|
||||
next();
|
||||
});
|
||||
|
||||
// Security middleware
|
||||
app.use(helmet({
|
||||
contentSecurityPolicy: {
|
||||
@@ -106,6 +93,36 @@ app.use(session({
|
||||
}
|
||||
}));
|
||||
|
||||
// Middleware для передачи переменных в шаблоны
|
||||
app.use((req, res, next) => {
|
||||
const currentLang = req.session?.language || req.getLocale() || 'ru';
|
||||
req.setLocale(currentLang);
|
||||
|
||||
res.locals.locale = currentLang;
|
||||
res.locals.__ = res.__;
|
||||
res.locals.theme = req.session?.theme || 'light';
|
||||
res.locals.currentLanguage = currentLang;
|
||||
res.locals.currentPage = req.path.split('/')[1] || 'home';
|
||||
|
||||
// Debug logging for theme
|
||||
if (req.url !== '/sw.js' && !req.url.startsWith('/css/') && !req.url.startsWith('/js/') && !req.url.startsWith('/images/')) {
|
||||
console.log(`Request URL: ${req.url}, Theme from session: ${req.session?.theme}, Setting theme to: ${res.locals.theme}`);
|
||||
}
|
||||
|
||||
// Устанавливаем заголовки для предотвращения кеширования языкового контента
|
||||
if (!req.url.startsWith('/css/') && !req.url.startsWith('/js/') && !req.url.startsWith('/images/')) {
|
||||
res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate');
|
||||
res.setHeader('Pragma', 'no-cache');
|
||||
res.setHeader('Expires', '0');
|
||||
res.setHeader('Vary', 'Accept-Language');
|
||||
}
|
||||
|
||||
// Отладочная информация
|
||||
console.log(`Request URL: ${req.url}, Current Language: ${currentLang}, Session Language: ${req.session?.language}, Locale: ${req.getLocale()}`);
|
||||
|
||||
next();
|
||||
});
|
||||
|
||||
// Routes
|
||||
app.use('/', require('./routes/index'));
|
||||
app.use('/api/auth', require('./routes/auth'));
|
||||
@@ -125,6 +142,7 @@ app.get('/lang/:language', (req, res) => {
|
||||
if (supportedLanguages.includes(language)) {
|
||||
req.setLocale(language);
|
||||
req.session.language = language;
|
||||
console.log(`Language switched to: ${language}, session language: ${req.session.language}`);
|
||||
}
|
||||
|
||||
const referer = req.get('Referer') || '/';
|
||||
|
||||
Reference in New Issue
Block a user