es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Actualizando variables AJAX en EJS

Estoy intentando usar Ajax por primera vez. Tengo un sitio funcional y quiero mejorarlo, por lo tanto, no quiero redirigir a los clientes en cada publicación, quiero usar AJAX y hacer una llamada a la base de datos en el backend con node.js.

Para HTML estoy usando EJS. Quiero permitir que se llame a AJAX cuando se carga la página. Todo eso ya está funcionando.

Mi problema es que estoy usando una llamada if en EJS.

Es como:

si (variableX === 0){
renderiza este encabezado
} más{
renderiza el encabezado de inicio de sesión con el nombre
}

La función en el backend se llama, pero no va a renderizar las variables de mi archivo EJS.

¿Puede alguien ayudarme?

EJS:

pages.js:

res.render('home', {
pageName: "",
userName: result[0].twitchName,
isLive: liveStatus,
userID: result[0].id,
benachrichtigung: benachrichtigung,
twitchPBUrl: twitchPBLink

});
}

Muchas gracias de antemano 🙂

Los mejores saludos,

Joshy

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que tu archivo EJS no está renderizando correctamente las variables después de la llamada AJAX. Una posible solución sería cambiar tu llamada AJAX a una petición GET y pasar las variables como parámetros de consulta en la URL. Luego, en tu backend, puedes recuperar estos parámetros y usarlos en tu archivo EJS para renderizar el encabezado correcto.

    Aquí hay un ejemplo:

    EJS:

    <% if (data.variableX === 0) { %>
      renderizar este encabezado
    <% } else { %>
      renderizar encabezado de inicio de sesión con <%= data.userName %>
    <% } %>
    

    Javascript:

    $(document).ready(function() {
      $.get('/get-header-data', function(data) {
        $('#header').html(data);
      });
    });
    

    Backend de Node.js:

    la app.get('/get-header-data', function(req, res) {
      // Hacer tu llamada a la base de datos y obtener los datos necesarios
      // ...
    
      // renderear el archivo EJS con los datos recuperados
      res.render('header.ejs', { variableX: variableX, userName: userName });
    });
    

    Al usar una petición GET y pasar los datos en la URL, te aseguras de que se recuperen los datos antes de renderizar la página. Luego, en tu archivo EJS, puedes usar los datos para renderizar el encabezado correcto.

Comments are closed.