Express tabanlı bir web sitesinde verileri arkaplanda güncellemek için dosyaları tekrar require etmeniz yerine, güncel verileri tutabileceğiniz bir veritabanı veya bellek önbelleği kullanmanız daha uygun olacaktır. Bu şekilde sayfaları her istendiğinde yeniden require etmek yerine, veritabanından veya bellek önbelleğinden güncel verileri alarak web sitesinin performansını artırabilirsiniz.
Veritabanı olarak popüler seçenekler arasında MongoDB, MySQL, PostgreSQL gibi SQL veya NoSQL tabanlı veritabanları bulunmaktadır. Ayrıca, Redis gibi hafızada veri saklamaya yönelik bir bellek önbelleği de kullanılabilir.
Ancak, eğer dosya tabanlı bir çözüm kullanmaya karar verdiyseniz ve verileri ayrı dosyalarda tutmak yerine, bir ana veri dosyasında tutmayı tercih edebilirsiniz. Böylece tüm sayfalardan verilere tek bir dosya üzerinden erişebilirsiniz. Aşağıdaki gibi bir yaklaşım izleyebilirsiniz:
1. Ana veri dosyası oluşturun ve içine verileri JSON formatında kaydedin. Örneğin, "data.json" adında bir dosya oluşturun.
{
  "profiles": [...],
  "projects": [...],
  ...
}
2. Verileri güncellediğinizde, "data.json" dosyasını güncelleyin.
3. Sayfalarda verilere ihtiyaç duyduğunuzda, "data.json" dosyasını require ederek içindeki güncel verilere erişebilirsiniz.
Örnek olarak, "profiles" ve "projects" verilerine ana veri dosyasından nasıl erişebileceğinizi göstereyim:


const fs = require("fs");
const path = require("path");

let data = {}; // Boş bir nesne oluşturuyoruz, verileri burada saklayacağız

// Ana veri dosyasını require ederek içindeki verileri güncelliyoruz
function updateData() {
  const dataFilePath = path.resolve(__dirname, "data.json");
  const rawData = fs.readFileSync(dataFilePath);
  data = JSON.parse(rawData);
}

// Sayfaları tekrar require etmek yerine verileri buradan alabilirsiniz
function getPageData() {
  return {
    profiles: data.profiles,
    projects: data.projects,
    // Diğer verileri de buraya ekleyebilirsiniz
  };
}

// Verileri başlangıçta yüklemek için
updateData();

// Verileri belirli bir aralıkla güncellemek isterseniz, örneğin her 5 dakikada bir, bir zamanlayıcı kullanabilirsiniz.
setInterval(updateData, 5 * 60 * 1000); // 5 dakika (5 * 60 * 1000 milisaniye)

// Kullanım örneği
function requirePages() {
  readdirRecursive("./api-pages", (filePath) => {
    if (filePath.endsWith(".js")) {
      // Sayfa modülünü tekrar require etme yerine getPageData() fonksiyonunu kullanarak güncel verileri alıyoruz
      const pageModule = require(filePath);
      const pageData = getPageData();

      // Sayfa için güncel parametreleri al
      pageModule(app, checkAuth, db, moment, renderTemplate, config, top20code, lastshared, pageData);
      console.log(`[API] ${filePath} yüklendi!`);
    }
  });
}
Bu şekilde, ana veri dosyasını güncellediğinizde tüm sayfalar otomatik olarak güncel verilere erişecektir. Ancak, yine de uzun aralıklarla güncellenen verilere anlık erişim sağlamak için veritabanı veya bellek önbelleği kullanmanız daha uygun olacaktır.