0

我正在尝试制作一个当前重定向到“/”的静态搜索栏。这只是目前的情况。但主要问题是无论输入是什么,输出总是' h '

我正在使用nodejsejs

.

请求.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' }

我做错了什么,请帮助

4

2 回答 2

0

您需要在表单方法中使用 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('/'); });

于 2022-02-04T21:26:24.870 回答
0

您没有指定,但您似乎正在使用 express。

使用req.queryobject 而不是req.params,因为 params 用于带有路由的 URL,而不是查询参数。话虽如此,您的请求 URL 中不需要:search匹配。我无法解释为什么它的值是“h”,但这应该可以解决你的问题。

于 2020-01-28T16:34:07.100 回答