Tengo un backend restAPI del que estoy tratando de obtener datos. Estoy usando NodeJS, pero por alguna razón, los datos se cargan en la consola como JSON, pero cuando intento imprimirlos en la nueva página web, aparece un error.
TypeError: /Final part 2/views/pages/letseat.ejs:11 9| </div> 10| <!-- Right here it takes every value that we got back and then puts it into a list item --> >> 11| <% userlist.forEach(function(userlist) { %> 12| <ul class="list-group list-group-numbered"> 13| <input type="checkbox" name=<%= userlist.firstname %> 14| <li class="list-group-item"><%= userlist['firstname'] %>, By: <%= userlist['lastname' ]%> </li> Cannot read properties of undefined (reading 'forEach')Pero obtengo los datos en JSON en la terminal.
data: [ { firstname: 'John', lastname: 'Boyle', numberofplaces: null, user_id: 1 }, { firstname: 'Ruben', lastname: 'Holt', numberofplaces: null, user_id: 3 }, { firstname: 'Tim', lastname: 'Diaz', numberofplaces: null, user_id: 4 }, { firstname: 'Tony', lastname: 'Santiago', numberofplaces: null, user_id: 2 }, { firstname: 'Scully', lastname: 'Smith', numberofplaces: null, user_id: 5 } ]La función que estoy usando para representar la página es
<% userlist.forEach(function(songlist) { %> <ul class="list-group list-group-numbered"> <input type="checkbox" name=<%= userlist.firstname %> <li class="list-group-item"><%= userlist['firstname'] %>, By: <%= userlist['lastname' ]%> </li> </ul> <% }); %>Por último, esta es la ruta API.
app.get('/process_form', function(req, res){ // create a variable to hold the username parsed from the request body // Now we will use the token wiht the name that the user entered // For this we will use the axios method to return the result axios.get('http://127.0.0.1:5000/api/getuser') .then((response)=>{ var userlist = response.data.results; console.log(userlist); res.render('pages/letseat', { userlist: userlist });¡Por favor, dame alguna orientación, he estado atascado en esto durante 3 horas!
Está tratando de acceder a una propiedad que no existe y está regresando que causó que no esté definida.
var userlist = response.data.results // ^^^^^^^ response.data ya es una matriz que querías. Así que tienes que cambiar a
var userlist = response.data