Estoy usando feathers-redis-cache para almacenar datos en caché para algunos de los servicios en mi aplicación feathersjs. Así es como se ven mis ganchos:
const {hooks: redisCache} = require('feathers-redis-cache'); ///... some code ../// before: { all: [], find: [validateSearchParams,redisCache.before()], get: [redisCache.before()], create: [throw400Error('Not supported')], update: [throw400Error('Not supported')], patch: [preventAnyUnallowedChanges, redisCache.before()], remove: [throw400Error('Not supported')] }, after: { all: [], find: [removeSensitiveData(), redisCache.after({ expiration: 600 })], get: [preventUnallowedConfig, removeSensitiveData(), redisCache.after({expiration: 600 })], create: [redisCache.purge()], update: [redisCache.purge()], patch: [preventUnallowedData, redisCache.purge()], remove: [redisCache.purge()] },Ahora, el front-end está enviando datos con el formato correcto que se recibe a través de la llamada GET (feathersjs get) y después de cambiar y guardar los datos en el formulario, PATCH (feathersjs patch) está devolviendo datos antiguos almacenados en caché. Una vez que eliminé el método anterior de gancho/parche redisCache.before(), el parcheo de los datos se realiza sin problemas. Con ese método redis en su lugar y con la obtención de datos con buscar y no obtener, este problema no existe.
¿Alguien puede explicar la razón por la cual la aplicación de parches no funciona si los datos se recuperan con get y luego se parchean y funciona cuando los datos se obtienen con find?