Для того же сценария я реализовал кэш LRU, в котором я сохранил запрос в качестве ключа и ответ в качестве значения.
const LRU = require("lru-cache")
const lruCache = new LRU({
maxElements: 1000,
length: (n, key) => {
return n * 2 + key.length
},
dispose: function (key, n) {
// n.close()
},
maxAge: 1000 * 60 * 60
})
Чтобы установить значение lruCache.set(key, value)
и получить const data = lruCache.get(key);
«ключ» - это ваш запрос.
Существуют и другие варианты, но они наиболее популярны(вот во что я верю)
URL - https://www.npmjs.com/package/lru-cache