в его короткую форму чтобы можно было обратно потом разобрать в подробный? Задача: кешировать запросы в Redis. Я использую либу Got для запросов, она дает указать storage для кеширования но мне это не подходит. Посмотрел на кешированный запрос в Redis через Got, он там занимает 2 Кб, а если перевести Response в string, то он будет уже 112 Кб
Реализовал сейчас запись и чтение в/из хранилища, но тут проблема одна: использую хуки своей библиотеки (beforeRequest и afterResponse), и у меня такая логика (beforeRequest): если в редисе нет конкретного запроса, то просто даем выполниться запросу, а если нет то возвращаем из редиса. Проблема в том что после вызове хука beforeRequest, оно вызывает непонятную функцию response.once (а у меня она в редисе не хранится => выдает ошибку при вызове с чистого объекта)
Вы кэшируете ответы сервера в редисе, чтобы их потом потом выполнить. Окей. Про библиотеку непонятно. Зачем в ней хук beforeReq? Почему ваша библиотека вызывает метод, который невозможно выполнить? Много непоняток самый тупой способ, наверное, это через yourResFromRedisObj.once = function(args){ // реализация спмженная из оригинальной функции}; } Там же вы объект получаете по итогу из редиса после всех манипуляций?
не, я кеширую их чтобы потом из редиса их черпать, редис все же побыстрее будет, да и у стороннего хоста аптайм порядка 90% (не бред, ложится каждый вечер на час)
библиотека не моя, юзаю вот эту. рассчитывалось её разработчиками что объект Response дальше области работы программы никуда передаваться не будет, и никак его внутреннее содержимое помимо полезных данных тоже. https://github.com/sindresorhus/got . объект Response содержит в себе функцию которая вызывается этой библиотекой
Обсуждают сегодня