Я использую hapiJS для создания API и Mongodb для кэширования внешних вызовов API.Плагин, который я использую: Catbox Mongodb
Я вызываю удаленный API для получения массива объектов.
Ответ
[
{ "id": 1, "name": "Foo" },
{ "id": 2, "name": "Bar" },
]
СерверМетод
Кэш сохраняется под ключом, возвращенным из опции generateKey
.Возврат единственной ключевой строки из опции метода сервера сохраняет весь объект ответа под одним ключом, который мне не нужен в моем случае.
server.method('getList', getList, {
generateKey: messages => {
/*
// Send array? It fails
console.log('inside gen key', messages);
const keys = messages.map(m => hash(m));
console.log(keys);
return keys;
*/
},
cache: {
cache: 'mongoCache',
segment: 'parallelDotsBulk',
expiresIn: 1000 * 60 * 60 * 24,
generateTimeout: 2000
}
});
Что мне нужно, это кэшировать каждый объект вотдельный ключ .Опция generateKey
не принимает массив как опцию.