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 pasar un valor desde req.render() a ejs y luego desde esa plantilla ejs a otra.

server.js

app
  .route("/")
  .get((req, res) => {
    res.render("home", { tofirstejs: usercount });
  })

<h2>```</h2>

<h2>home.ejs</h2>

<%- include('partials/header.ejs', {tolastejs:tofirstejs}); -%>
<%- include('partials/signin.ejs'); -%>
<%- include('partials/footer.ejs'); -%>

“`

header.ejs

“`
<body>

<div id="alert"></div>

<h3> <%= tolastejs% > usuario</h3>

//quiere el valor inicial de usercount aquí
</body>

<h2>“`

Quiero saber cómo pasar el valor a través de varias EJS. Puedo resolver este problema reduciendo la EJS intermedia y llamando directamente a la final, pero mi intención es aprender. Así que si hay alguna forma de implementarlo, POR FAVOR HÁGAMELO SABER.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para pasar un valor a través de múltiples archivos EJS, puedes usar el objeto locals en la función render. Este objeto se utiliza para pasar datos desde el servidor al archivo EJS, y se puede acceder en cualquier archivo EJS incluido o padre.

    En el código de ejemplo dado, el valor de usercount se pasa de server.js al archivo home.ejs usando res.render("home", { tofirstejs: usercount });. Para pasar este valor a header.ejs, puedes modificar la declaración include en home.ejs para incluir el objeto locals:

    <%- include('partials/header.ejs', {tolastejs:locals.tofirstejs}); -%>
    

    Luego, en header.ejs, puedes acceder al valor tolastejs usando <%= tolastejs %>.

    De manera similar, puedes pasar el valor tolastejs a signin.ejs y footer.ejs usando el mismo método.

    Al hacer esto, puedes pasar valores a través de varios archivos EJS sin tener que llamar directamente al archivo EJS final.

Comments are closed.