我正在尝试制作一个当前重定向到"/"的静态搜索栏。这就是目前的情况。但主要问题是,无论输入是什么,输出总是">h">
我正在使用nodejs和ejs
.
请求.ejs
<form action="/request/search" method="GET">
<input
type="text"
name="search"
id="search"
placeholder="Search for Books"
class="search"
/>
<button class="search-btn" type="submit">Submit</button>
<div class="imae"></div>
</form>
服务器.js
app.get('/request/search?:search', (req, res) => {
console.log(req.params);
res.redirect('/');
});
输出
{ search: 'h' }
我做错了什么,请帮忙
您没有指定,但似乎您正在使用 express。
使用req.query
对象而不是req.params
,因为参数用于具有路由的 URL,而不是查询参数。话虽如此,您不需要请求 URL 匹配中的:search
。我无法解释为什么它会收到"h"的值,但这应该可以解决您的问题。
你需要在 Method 的形式中使用 POST 而不是 GET
<HTML>
<form action="/request/search" method="POST">
<input
type="text"
name="search"
id="search"
placeholder="Search for Books"
class="search"
/>
<button class="search-btn" type="submit">Submit</button>
</form>
在JS端。app.get('/request/search', (req, res) => { console.log(req.body); res.redirect('/'); });