Tengo un sitio web node.js que creo con este tutorial: https://scotch.io/tutorials/easy-node-authentication-setup-and-local
ahora quiero en una de mis vistas imprimir/mostrar todos los datos de los usuarios.
en rutas.js:
var User = require('../app/models/user'); //the connection to users database app.get('/profile', isLoggedIn, function (req, res) { res.render('profile.ejs', { Users: User // get the user out of session and pass to template }); });y esto está en mi archivo profile.ejs:
<ul> <% Users.forEach( function(err, user) { %> <li><%= user %> </li> <% }); %>me sale un error: "indefinido no es una función" debido a la línea <% Users.forEach( function(err, user) { %>
¿Qué estoy haciendo mal?
Debe consultar la colección de usuarios a través de la función de consulta find() del modelo que devolverá una matriz de documentos de usuario cuando se ejecute, es decir
var User = require('../app/models/user'); //the connection to users database app.get('/profile', isLoggedIn, function (req, res) { User.find({}).exec(function(err, users) { if (err) throw err; res.render('profile.ejs', { "users": users }); } }); luego renderice la lista de documentos de usuario en su profile.ejs como:
<% users.forEach(function (user) { %> <li> <h1><%= user.name %></h1> </li> <% }) %>