OMDb API 在使用 AXIOS 搜索电影后需要帮助获取/结果页面
OMDb API need help getting /results page after movie search using AXIOS
这是我当前的 app.js 代码。我正在尝试创建一个电影搜索,它允许我在数据库中搜索一部电影,并带回该关键字内 10 部电影的结果。例如。如果我搜索“ALABAMA”,我应该会在数据库中收到 10 部带有 ALABAMA 字样的电影。但是,我无法继续前进,因为我一直在尝试同时使用 node.js、express.js 和 axios。以前我使用 Request 而不是 Axios,但因为它已被弃用,所以我选择使用 axios。我仍在学习,因为它有点棘手,但我只需要帮助来尝试获得我的/结果。要加载的页面。我的 VIEWS 文件夹包含“results.ejs”和“search.ejs”。我正在使用来自 http://omdbapi.com/ 的 OMDb API 。任何反馈将不胜感激,我只是想知道我在哪里搞砸了。
const express = require("express");
const app = express();
const axios = require("axios");
app.set("view engine", "ejs");
app.use(express.static(process.env.STATIC_DIR || "public"));
app.get("/", function(req, res){
res.render("search.ejs")
})
app.get("/results", (req, res) => {
var searchTerm = req.query.search;
var url = "https://www.omdbapi.com/?s=" + searchTerm + "&apikey=thewdb";
axios.get('http://www.omdbapi.com/?i=tt3896198&apikey=thewdb')
.then(response => {
console.log(response.data.Search);
res.render("results.ejs", {data: response.data.Search});
})
.catch(err => {
console.log(err);
})})
app.listen(3000, () => {
console.log("Movie App Has Started!!");
})
我的 results.ejs 代码如下:
<h1>Results Page!!!</h1>
<% if (data == null) { %>
<p>No results. Please try refining your search terms.</p>
<% } else { %>
<ul>
<% data["Search"].forEach(function(movie) { %>
<li>
<strong>
<%= movie["Title"] %>
</strong>
- <%=movie["Year"]%>
</li>
<% }) %>
</ul>
<% } %>
<a href="/">Search Again!</a>
我的 search.ejs 代码如下:
<h1>
Search For a Movie
</h1>
<form action="/results" method="GET">
<input type="text" placeholder="search term" name="search">
<input type="submit">
</form>
您传递的似乎是硬编码的 URL 字符串,而不是带有搜索词的准备好的 URL 字符串。
改变这个
var url = "https://www.omdbapi.com/?s=" + searchTerm +
"&apikey=thewdb";
axios.get('http://www.omdbapi.com/?i=tt3896198&apikey=thewdb')
对此
var url = "https://www.omdbapi.com/?s=" + searchTerm +"&apikey=thewdb";
axios.get(url)
这是我当前的 app.js 代码。我正在尝试创建一个电影搜索,它允许我在数据库中搜索一部电影,并带回该关键字内 10 部电影的结果。例如。如果我搜索“ALABAMA”,我应该会在数据库中收到 10 部带有 ALABAMA 字样的电影。但是,我无法继续前进,因为我一直在尝试同时使用 node.js、express.js 和 axios。以前我使用 Request 而不是 Axios,但因为它已被弃用,所以我选择使用 axios。我仍在学习,因为它有点棘手,但我只需要帮助来尝试获得我的/结果。要加载的页面。我的 VIEWS 文件夹包含“results.ejs”和“search.ejs”。我正在使用来自 http://omdbapi.com/ 的 OMDb API 。任何反馈将不胜感激,我只是想知道我在哪里搞砸了。
const express = require("express");
const app = express();
const axios = require("axios");
app.set("view engine", "ejs");
app.use(express.static(process.env.STATIC_DIR || "public"));
app.get("/", function(req, res){
res.render("search.ejs")
})
app.get("/results", (req, res) => {
var searchTerm = req.query.search;
var url = "https://www.omdbapi.com/?s=" + searchTerm + "&apikey=thewdb";
axios.get('http://www.omdbapi.com/?i=tt3896198&apikey=thewdb')
.then(response => {
console.log(response.data.Search);
res.render("results.ejs", {data: response.data.Search});
})
.catch(err => {
console.log(err);
})})
app.listen(3000, () => {
console.log("Movie App Has Started!!");
})
我的 results.ejs 代码如下:
<h1>Results Page!!!</h1>
<% if (data == null) { %>
<p>No results. Please try refining your search terms.</p>
<% } else { %>
<ul>
<% data["Search"].forEach(function(movie) { %>
<li>
<strong>
<%= movie["Title"] %>
</strong>
- <%=movie["Year"]%>
</li>
<% }) %>
</ul>
<% } %>
<a href="/">Search Again!</a>
我的 search.ejs 代码如下:
<h1>
Search For a Movie
</h1>
<form action="/results" method="GET">
<input type="text" placeholder="search term" name="search">
<input type="submit">
</form>
您传递的似乎是硬编码的 URL 字符串,而不是带有搜索词的准备好的 URL 字符串。
改变这个
var url = "https://www.omdbapi.com/?s=" + searchTerm +
"&apikey=thewdb";
axios.get('http://www.omdbapi.com/?i=tt3896198&apikey=thewdb')
对此
var url = "https://www.omdbapi.com/?s=" + searchTerm +"&apikey=thewdb";
axios.get(url)