Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

249
Visualizações
¿Cuál es la mejor manera de almacenar la respuesta anterior de una API y compararla con la nueva respuesta en Nodejs?

Tengo una base de datos cuyos valores están expuestos a través de una API de microservicio en el servidor Nodejs, que luego utiliza la interfaz de usuario de reactjs. En el middleware de Nodejs, realizo algunas operaciones y veo si los valores de respuesta de la API de db son elegibles para enviarse a la interfaz de usuario o no. Ahora, en la interfaz de usuario, estoy creando un tablero que mostrará un indicador "Último" para los valores que el usuario ve ahora por primera vez. ¿Cómo puedo trabajar en esta lógica en UI o middleware?

1 enfoque que he probado es: enviar un indicador desde el middleware que isIndicator = verdadero o no. Utilizo la biblioteca de momentos y veo si el valor del día agregado en db y el día actual, la diferencia entre ellos es <5 (debe mostrarse solo durante 5 días), luego establezco el indicador como verdadero o falso.

 const d1=moment ().utc() const d2=moment (dateAdded).utc() const d=d1.diff(d2);

Pero esto fallará si el valor en db está allí por mucho tiempo y recientemente es elegible para mostrar la interfaz de usuario.

¿Puede alguien por favor ayudarme a construir la lógica?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Escenario de noticias de última hora

Siguiendo su muestra:

algunas historias están marcadas como noticias de última hora, después de un tiempo desaparece

Debe definir qué convierte una historia en una "noticia de última hora".

Aquí algunas muestras:

  • Frecuencia de Me gusta del usuario
  • Tiempo promedio de lectura
  • ¿Cuánto tiempo permanece el usuario en la historia?
  • ¿Cuántas veces se ha compartido?

Si logra almacenar estos metadatos de una sola historia en su base de datos, sería fácil desarrollar un punto final en su api llamado /api/news/breaking que le devuelva las últimas noticias. Después de algunos días, el mismo punto final devolverá otra noticia que cumpla con los requisitos.

En este enfoque, no necesita comparar las respuestas. Solo necesita almacenar metadatos de sus historias y sus interacciones con el usuario.

tu escenario

mostrar un indicador "Último" para aquellos valores que el usuario ve ahora por primera vez

Si el usuario con id jane_doe ingresa a la web de reacción y necesita acceder a algunas entidades que están en la base de datos, usando su api, sería fácil almacenar eso en su base de datos:

  • jane_doe > primer intento de recuperar entidades

Si el mismo usuario, necesita recuperar la misma entidad, con los datos anteriores, usted es capaz de determinar si estas entidades ya fueron mostradas al usuario.

En este caso, no se requiere la comparación entre las respuestas.

about 4 years ago · Juan Pablo Isaza Relatório

0

Si no necesita almacenar esta información en su servidor para ningún otro caso de uso, y puede tolerar que el indicador "más reciente" aparezca por navegador (es decir, aparece una vez en Chrome de escritorio, otra vez en un navegador móvil, para los mismos datos), entonces una opción es que los clientes realicen un seguimiento de su última marca de tiempo vista en el almacenamiento local del localStorage :

 // Get the last timestamp viewed by the user, or 0 if the user hasn't // viewed anything yet. const lastViewedTimestamp = Number(localStorage['lastViewedTimestamp'] || 0); // Assuming your node server returns data in JSON format, // fetch the data as JSON. const response = await fetch('/your/data').then(response => response.json()); // Parse the response timestamp into UTC milliseconds since epoch, if needed. const currentTimestamp = moment(response.date).utc().milliseconds(); // Show the "latest" indicator if the data is newer than the last data viewed // by the user. const isLatest = currentTimestamp > lastViewedTimestamp; // Persist the last viewed timestamp to localStorage. localStorage['lastViewedTimestamp'] = currentTimestamp;

Luego, si los usuarios actualizan la página, o incluso salen del navegador y luego vuelven a abrir el navegador, no deberían ver el indicador "más reciente" siempre que los datos devueltos no sean más nuevos que los últimos datos que se recuperaron.

Más sobre localStorage : https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda