HapiJS Caching - кэширует каждый объект отдельно от HTTP-ответа. - PullRequest
0 голосов
/ 08 октября 2018

Я использую 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 не принимает массив как опцию.

...