Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

205
Vistas
no se puede obtener el valor de los datos en esta función de devolución de llamada en el nodo y redis

Tengo una aplicación de nodo que usa la base de datos redis para almacenar mis tokens de actualización. Estoy tratando de obtener el valor de los datos aquí en una función de devolución de llamada cuando utilicé el método .get() en redis. Pero no está funcionando. En cartero, cuando hago la solicitud, no devuelve nada. Permanece en 'solicitud de envío' para siempre. Aquí está la función:

 const {get, set} = require('../reditConnect');//coming from redis connection const refreshTokenverify = async (req, res, next) =>{ try{ const payload = jwt.verify(token, process.env.Refresh_Secret) req.user = {userId:payload.userId}; console.log(req.user) await get(payload.userId.toString(), (err, data)=>{ console.log(data) }); next() }catch(err){ return res.status(401).json({message: "Invalid token"}) } };

Aquí está el código de conexión redis:

 const redis = require('redis'); const { promisify } = require("util"); const redis_client = redis.createClient(); redis_client.connect() redis_client.on('connect', function(){ console.log('redis client connected') }); redis_client.on('ready', ()=>{ console.log("client is connected to redis and ready to use..") }); redis_client.on('error', (err)=>{ console.log(err) }); redis_client.on('end', ()=>{ console.log('client diconnected from redis') }); process.on('SIGINT', ()=>{ redis_client.quit() }) const get = promisify(redis_client.get).bind(redis_client); const set = promisify(redis_client.set).bind(redis_client) module.exports = { get, set }

¿Cómo me acerco a esto? El código deja de funcionar en console.log(req.user) Obtengo un console.log para eso, pero la solicitud nunca termina, permanece enviando la solicitud cuando utilicé cartero.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

promisify devolverá la promesa para que no necesite usar la devolución de llamada.

usa esta linea

 const data = await get(payload.userId.toString());

en lugar de esta línea

 await get(payload.userId.toString(), (err, data)=>{ console.log(data) });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda