توابع کمکی کش کردن (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: مدل SequelizegetCachedModelDataFn: تابع دریافت دادههای کش شده
بازگشتی: رکورد پیدا شده یا undefined
مثال:
const user = await findRecordFromCacheOrDB(
{ id: 123 },
UserModel,
() => getCachedUser()
);