Создайте приложение на Node.js, которое кэширует данные с ограничением по времени. Когда кэш истекает, данные должны автоматически обновляться из внешнего источника (например, из API) при следующем запросе.
• node app.js fetch
— получает данные из кэша, а если кэш истек, то запрашивает данные заново и обновляет кэш.
Решение задачи
const fs = require('fs');
const path = require('path');
const fetch = require('node-fetch');
const cacheFile = path.join(__dirname, 'cache.json');
const CACHE_TTL = 60 * 1000; // 1 минута
// Функция для обновления кэша
async function updateCache() {
const data = await fetch('https://api.example.com/data ').then(res => res.json());
const cacheData = { data, timestamp:Date.now () };
fs.writeFileSync(cacheFile, JSON.stringify(cacheData));
return data;
}
// Функция для получения данных из кэша
async function fetchData() {
if (fs.existsSync(cacheFile)) {
const cache = JSON.parse(fs.readFileSync(cacheFile, 'utf8'));
const isCacheValid =Date.now () - cache.timestamp < CACHE_TTL;
if (isCacheValid) {
console.log('Данные из кэша:',cache.data );
returncache.data ;
}
}
console.log('Обновление кэша...');
return await updateCache();
}
// Проверка кэша
fetchData().then(data => console.log('Полученные данные:', data));