پرش به مطلب اصلی

توابع کمکی کش کردن (caching.ts)

توابع کمکی مربوط به مدیریت کش و ذخیره‌سازی موقت داده‌ها.

getCachedModelData

دریافت داده‌های مدل از کش یا دیتابیس.

async function getCachedModelData<MI = any, M extends Model = any>(
options: IModelCacheInfo<MI[] | M[]> & {
modelName?: string;
update?: boolean;
},
update = false
): Promise<MI[]>

پارامترها:

  • options.cacheKey: کلید کش
  • options.fromDB: تابع دریافت داده از دیتابیس
  • options.id: ID برای فیلتر کردن
  • options.noExpired: آیا کش منقضی نشود
  • options.modelName: نام مدل (اختیاری)
  • update: آیا کش بروزرسانی شود

بازگشتی: آرایه‌ای از داده‌های مدل

مثال:

const users = await getCachedModelData({
cacheKey: 'all_users',
fromDB: async () => await User.findAll(),
noExpired: true
});

findRecordFromCacheOrDB

پیدا کردن رکورد از کش یا دیتابیس.

async function findRecordFromCacheOrDB<T = any>(
query: { [k in keyof T]?: any },
model: any,
getCachedModelDataFn: () => Promise<T[]>
): Promise<T | undefined>

پارامترها:

  • query: شرایط جستجو
  • model: مدل Sequelize
  • getCachedModelDataFn: تابع دریافت داده‌های کش شده

بازگشتی: رکورد پیدا شده یا undefined

مثال:

const user = await findRecordFromCacheOrDB(
{ id: 123 },
UserModel,
() => getCachedUser()
);