Ошибка типа: невозможно прочитать свойство 'forEach' из неопределенного файла e js - PullRequest
1 голос
/ 08 апреля 2020

Я новичок в nodejs, express и e js. Я работаю над очень простой формой, которая позволяет пользователям отправлять имя состояния, и это имя состояния используется для захвата всех заголовков mov ie, которые включают это имя состояния в API, и отображения их на моей странице результатов. Я либо получил ответ TypeError, либо мой браузер будет просто непрерывно загружаться без ответа.

(Ответ об ошибке)

TypeError: /Users/Documents/NodeProjects/webProj/moreapps/views/results.ejs:3
    1| <h1>Here is the Results Page!!!!</h1>
    2| 
 >> 3| <% data["Search"].forEach(function(movie) { %>
    4| <li><%= movie["Title"] %></li>
    5| 
    6| <% }) %>

Cannot read property 'forEach' of undefined
    at eval (eval at compile (/Users/Documents/NodeProjects/webProj/moreapps/node_modules/ejs/lib/ejs.js:632:12), <anonymous>:10:23)
    at results (/Users/Documents/NodeProjects/webProj/moreapps/node_modules/ejs/lib/ejs.js:662:17)
    at tryHandleCache (/Users/Documents/NodeProjects/webProj/moreapps/node_modules/ejs/lib/ejs.js:255:36)
    at View.exports.renderFile [as engine] (/Users/Documents/NodeProjects/webProj/moreapps/node_modules/ejs/lib/ejs.js:461:10)
    at View.render (/Users/Documents/NodeProjects/webProj/moreapps/node_modules/express/lib/view.js:135:8)
    at tryRender (/Users/Documents/NodeProjects/webProj/moreapps/node_modules/express/lib/application.js:640:10)
    at Function.render (/Users /Documents/NodeProjects/webProj/moreapps/node_modules/express/lib/application.js:592:3)
    at ServerResponse.render (/Users/Documents/NodeProjects/webProj/moreapps/node_modules/express/lib/response.js:1008:7)
    at Request._callback (/Users/Documents/NodeProjects/webProj/moreapps/app.js:34:7)
    at Request.self.callback (/Users/Documents/NodeProjects/webProj/moreapps/node_modules/request/request.js:185:22)

(приложение. js)

app.set("view engine", "ejs");

app.get("/", function(req, res) {
  res.render('search');
});

app.get('/results', function (req, res, next) {

  //console.log ('hello world');
  request('https://www.omdbapi.com/?s=&apikey=thewdb', function (error, response, body) {
    if(!error && response.statusCode == 200) {
var data = JSON.parse(body);
      var search = data["Search"];
  //console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
  console.log(data);
  //res.send(parsedData);
  res.render('results', {data: data});
  //console.log(body);
    }
  });
});

(search.e js)

<h1>Search for a movie!!!</h1>

<form action="/results" method="GET">
<input type="text" placeholder="search term" name="search">
<input type="submit">
</form>

(results.e js)

<h1>Here is the Results Page!!!!</h1>

<% data["Search"].forEach(function(movie) { %>
<li><%= movie["Title"] %></li>

<% }) %>
...