如何解决如何从前端辅助函数组件外部调用Prisma函数?是否参与了Apollo和GraphQL?
我有一个运行良好的JAMstack Web应用程序(使用RedwoodJS)。
但是,我的前端经常调用Google Maps API,这可能很昂贵。
所以我真的很想在Google Maps条款允许的时间内缓存API结果(即保存到服务器上的数据库)。
客户端缓存不足,因为不同的访问者仍然会因为获取其他访问者已经导致(并且本来可以存储)的结果而再次向我的API密钥收费。
我已经创建了一个数据库表和一个称为cachedQueries.ts的后端“服务”(使用Prisma),它具有:
export async function getFromCacheOrFresh(key: string,getFresh: Function,expiresInSec: number): Promise<any> {
const nowMoment = dayjs.utc();
const nowStr = nowMoment.format(dbTimeFormatUtc);
const cached = await getCachedQuery({ key,expiresAtCutoff: nowStr });
console.log('getFromCacheOrFresh cached',cached);
if (cached) {
const cachedValueParsed = JSON.parse(cached.value);
console.log('cachedValueParsed',cachedValueParsed);
return cachedValueParsed;
} else {
const fresh = await getFresh();
saveToCache(key,JSON.stringify(fresh),expiresInSec);
return fresh;
}
}
我已经证明该cachedQueries.ts服务可以正常工作,并且可以正确地保存到数据库中并从数据库中检索出来,因为我已经成功地将其用于可从后端(而不是从前端)调用的第三方API -结束)。
现在,我面临的挑战是使其也能够缓存前端第三方API查询。
如何从前端调用getFromCacheOrFresh
函数?
我的应用程序的结构是:
- 我有一个主页,可在其中创建一个空元素,并显示cell:
<div id="map"></div> <ScraperCell usaStateCountyCombo={getUsaStateCountyCombo(usaState,county)} />
- 单元格的成功函数调用
createMapAndAddMarkers
-
createMapAndAddMarkers
首先创建地图(具有特定的中心位置和缩放比例),然后遍历地址数组,并为每个地址调用getGeocodeFromCacheOrFresh
。 - 当前端调用
geocode
method时,如何实现getGeocodeFromCacheOrFresh
来利用后端“服务”中的getFromCacheOrFresh
函数?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。