Estoy tratando de hacer un diario pero estoy atascado, estoy tratando de hacer un ciclo for que publique las publicaciones que compongo, en una matriz en la página de inicio. Obtengo una conexión entre el archivo de la aplicación y el archivo ejs porque las entradas aparecen cuando lo registro en la terminal, simplemente no puedo hacer que aparezca en la página de inicio. Solo quiero que aparezca el título de la entrada, pero sigo recibiendo "SyntaxError: token inesperado ')' en /user Desktop/frontEndNode-master/views/home.ejs mientras compila ejs".
<%- include("include/header"); -%> <h1>Home</h1> <P> <%= startingContent %> </P> <%- console.log(posts);-%> <%- include("include/footer"); -%> const express = require("express"); const bodyParser = require("body-parser"); const ejs = require("ejs"); const { redirect } = require("express/lib/response"); const homeStartingContent = "Lacus"; const aboutContent = "Hac habitass"; const contactContent = "Scelerisque"; const app = express(); app.set("view engine", "ejs"); app.use(bodyParser.urlencoded({ extended: true })); app.use(express.static("public")); const posts = []; app.get("/", (req, res) => { res.render("home",{ startingContent: homeStartingContent , posts:posts}); posts: [ {posts: posts}, {posts: posts} ] //console.log(posts); });Hay un extra ) en alguna parte.
Para representar publicaciones HTML, debe recorrer la matriz que pasa y extraer los valores que necesita, donde también construye HTML. Aquí hay un ejemplo de recorrer una matriz de objetos con forEach y crear un <ul>
<ul> <% posts.forEach(function(post, i) { %> <li>Post <% i+1; %>. <%= post.name %> Date: <%= post.date %></li> <% }); %> </ul>