Javascript 如何在后端express函数中访问当前url中的参数?(见说明)
好吧,我不知道该怎么解释。基本上,我正在编写一个简单的express应用程序,请求omdb api搜索电影标题并返回结果。现在,omdb api以页面形式发回结果,每页10个结果 这是我的app.js文件Javascript 如何在后端express函数中访问当前url中的参数?(见说明),javascript,node.js,express,backend,ejs,Javascript,Node.js,Express,Backend,Ejs,好吧,我不知道该怎么解释。基本上,我正在编写一个简单的express应用程序,请求omdb api搜索电影标题并返回结果。现在,omdb api以页面形式发回结果,每页10个结果 这是我的app.js文件 let express = require("express"); let app = express(); let request = require("request"); app.set("view engine", "ejs"); let query = ""; let page
let express = require("express");
let app = express();
let request = require("request");
app.set("view engine", "ejs");
let query = "";
let page = 1;
app.get("/", (req, res) => {
res.render("search");
});
app.get("/results", (req, res) => {
if(req.query.search){
query = req.query.search;
}
if(req.query.page){
page = req.query.page;
}else{
page = 1;
}
console.log(query);
console.log(page);
let url = "http://omdbapi.com/?apikey=thewdb&s=" + query + "&page=" + page;
request(url, (error, response, body) => {
if(!error && response.statusCode == 200){
let data = JSON.parse(body);
res.render("results", {data: data});
}
});
});
app.listen(process.env.PORT, process.env.IP, () => {
console.log("Server Started");
});
这是我的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>
搜索电影
这是我的results.ejs文件
<h1>Results of Search</h1>
<ul>
<% data["Search"].forEach((movie) => { %>
<li>
<strong><%= movie["Title"] %></strong> - <%= movie["Year"] %>
</li>
<% }); %>
</ul>
<form action="/results" method=GET>
<input type="text" name="page" placeholder="Page">
<input type="submit">
</form>
<a href="/">Search Again</a>
搜索结果
{ %>
-
-
用户可以在结果页中键入页码并转到下一页。但是,当我发回页码时,搜索查询将丢失。现在,我的解决方案是定义一个全局变量并像那样跟踪查询,但有没有合适的方法
我最近开始学习后端开发,所以我对表示和节点非常陌生
现在我的解决方案是定义一个全局变量并像这样跟踪查询
不要那样做
你将获得比赛条件,以及交叉用户污染
只需将查询放入表单中
<input type="hidden" name="query" value="...">
这就是我从/search页面内部调用/results函数的时候。如果我在提交页码时从结果页面内部调用/results函数,那么我就没有任何搜索查询。但是我如何从结果页面内部访问搜索查询的值,并将其作为隐藏表单的值输入?方法与您所说的相同essdata[“Search”]
So data[“Search”]来自omdb api发送回来的json数据。但搜索查询指的是用户在搜索页面上输入的搜索词。此链接用于omdb返回的json数据,这是数据[“Search”]来自。但我想要的是用户在搜索页面中输入的原始搜索词。@abdullahaquarius-无论数据在哪里[“搜索”]来自。您的服务器端代码中有一个变量。您用它呈现了模板。您的查询的服务器端代码中已经有一个变量。也用它呈现模板。