Я новичок в 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>
<% }) %>