Estoy revisando varios tutoriales sobre node.js y express y no puedo encontrar qué está haciendo realmente esta parte particular del código. Es para el segundo parámetro de res.render a continuación. La parte de la que no estoy seguro son las mascots: mascots parte de las mascotas. ¿Esto es declarar una variable de mascotas? No puedo encontrar ningún lugar en el lenguaje javascript donde esto se haga así, por lo que me confunde en cuanto a dónde obtuvieron esto. Por supuesto, recién estoy comenzando a aprender Javascript, por lo que podría ser algo obvio, pero aún no lo he encontrado. Parece que es un objeto (b/c de las llaves {} ), pero incluso si lo es, el valor de las mascotas con nombre no me queda claro. ¿Es esta la array de objects a la que se refieren? Y si es así, todavía es muy confuso para mí. Podría obtener una respuesta después de buscar un poco, así que pregunte aquí.
app.get('/', function(req, res) { var mascots = [ {name: 'Sammy', organization: 'DigitalOcean', birth_year: 2012}, {name: 'Tux', organization: 'Linux', birth_year: 1996}, {name: 'Moby Dick', organization: 'Docker', birth_year: 2013}, ]; var tagline = "No programming concept is complete without a cute animal mascot"; res.render('pages/index', { mascots: mascots, // this line and the one below is what I am not understanding tagline: tagline }); });Este tutorial en particular se encuentra aquí como referencia: https://www.digitalocean.com/community/tutorials/how-to-use-ejs-to-template-your-node-application Buena introducción y entiendo todo excepto estas dos líneas .
res.render('pages/index', { mascots: mascots, tagline: tagline }); esta parte pasa la matriz de mascots y la cadena de tagline a sus pages/index de vista y luego puede acceder a ambos desde su vista. Creo que lo que te confunde es el nombre. No necesariamente tiene que ser el mismo nombre. Por ejemplo, si lo nombro como
res.render('pages/index', { myMascotsArray: mascots, myTagline: tagline }); puede acceder a la matriz de mascots que definió como myMascotsArray desde su vista.
Refiriéndose al enlace que mencionó, han usado EJS como motor de plantillas donde puede escribir javascript entre las etiquetas <% %> .
Aquí puede notar que se accede a la matriz de mascots en forma de myMascotsArray desde la vista.
<ul> <% myMascotsArray.forEach(function(mascot) { %> <li> <strong><%= mascot.name %></strong> representing <%= mascot.organization %>, born <%= mascot.birth_year %> </li> <% }); %> </ul>