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.

¿Cómo enviar datos de etiquetas ejs a JavaScript?







Documento


<% dataArray.map((data) => {%>

<%=data%>

<%}) %>


Mi intención con esta pregunta es enviar datos del script a la etiqueta EJS.

Espero obtener datos al llamar a la API get de Ajax en la etiqueta script, y luego espero enviar los datos de llamada de Ajax a EJS.

Intenté hacerlo como se muestra arriba, pero solo fallé.

¿Cómo puedo solucionarlo?

Sé que se solucionará simplemente con este código:

<% var ajax_get_api_data = [1,2,3] %>

pero eso no es lo que quiero, porque ajax_get_api_data es de la etiqueta script, no de la etiqueta EJS.

¿Cómo puedo transmitir datos del script a EJS?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para transmitir datos de script a EJS, puedes usar AJAX para hacer una solicitud al código del lado del servidor que renderiza el archivo EJS. La solicitud AJAX puede incluir los datos de script como parámetro, que luego pueden ser procesados y utilizados en el archivo EJS.

    Aquí hay un ejemplo de cómo podrías modificar el código para lograr esto:

    Primero, agrega un punto final al código del lado del servidor que pueda manejar la solicitud AJAX:

    app.get('/datos', (req, res) => {
      const data = req.query.data;
      res.render('index', { dataArray: data });
    });
    

    Este código escucha las solicitudes GET al punto final ‘/datos’ y espera que se incluya un parámetro llamado ‘data’ en la cadena de consulta. Luego, renderiza el archivo index.ejs y pasa el valor de ‘data’ como la variable ‘dataArray’.

    En tu archivo HTML, modifica la etiqueta de script para incluir una solicitud AJAX que envíe los datos de script al servidor:

    <script>
      var ajax_get_api_data = [1,2,3];
      var xhr = new XMLHttpRequest();
      xhr.open('GET', '/datos?data=' + JSON.stringify(ajax_get_api_data), true);
      xhr.onload = function() {
        document.getElementById('data-container').innerHTML = xhr.responseText;
      }
      xhr.send();
    </script>
    
    <div id="data-container"></div>
    

    Este código crea un objeto XMLHttpRequest y realiza una solicitud GET al punto final ‘/datos’, incluyendo la matriz ‘ajax_get_api_data’ como parámetro en la cadena de consulta. Luego espera la respuesta del servidor y actualiza el contenido del div ‘data-container’ con el texto de la respuesta.

    Por último, modifica el código EJS para usar la variable ‘dataArray’ que se pasa desde el servidor:

    <% dataArray.map((data) => { %>
      <div><%= data %></div>
    <% }); %>
    

    Este código recorre la variable ‘dataArray’ y renderiza un div para cada elemento en la matriz.

    Con estas modificaciones, los datos de script se transmiten al servidor a través de AJAX y se utilizan en el archivo EJS para generar contenido dinámicamente.

Comments are closed.