保存 json 响应 n 分钟

Save json response for n minutes

从 api 获得响应大约需要 1.5 秒,所以我想我可以每 n 分钟保存一次响应,然后我不会在命令中调用 api,而是 return 已保存响应。所以我的问题是最好的方法是什么?由于 api 响应很长,我认为将其保存到数据库不是一件好事。 或者也许每次调用命令时只调用 api 然后将其保存在某处 n 分钟,如果在这 n 时间段内再次调用命令只是保存响应而不是每次调用 api .

我只是不确定如何以及在何处保存回复。

const fetch = require('node-fetch');
let data = await fetch('apiurl').then(body => body.json());

在这个例子中(我知道的一个非常简单的例子)我们有一个内存缓存,如果超过 5 秒就会刷新。

const dummyGetLiveData = () => {
  return { "data": "value" }
};

let cache;
let maxCacheAgeInMilliseconds = 5000; // 5secs

const provideData = () => {
  if(!cache || (Date.now() - cache.timeStamp > maxCacheAgeInMilliseconds) ) {
    console.log('Cache Build');
    cache = {
      timeStamp: Date.now(),
      data: dummyGetLiveData()
    }
  }
  return cache.data;  
};

document.querySelector('button').addEventListener('click', () => {
  console.log(provideData());
});
<button>Get Data</button>