漂亮的url搜索字符串而不是问号

时间:2019-01-18 09:42:45

标签: node.js express ejs

我一直在寻找其他网站,看到您进行搜索时,主要是搜索词,位置和类别等内容,您会看到一个漂亮的网址,例如:

example.com/black-boots/new-york/shoes

而不是我现在拥有的东西是这样的:

example.com/search-results/search?=black+boots&city=new+york&category=shoes

在我的路线中,我可以从以下内容开始:

router.get('/search-results/:search/:city/:category', shopController.getSearchResults);

在控制器中,我可以使用req.params.city等来从url中获取值,但是我无法弄清楚的部分是使用输入法将文本输入值输入url的好方法。得到请求。

默认情况下使用GET会给我一个看起来“丑陋”的网址。

基本上需要填写表格的部分

<form method="GET" action="/search-results/search/city/category">

1 个答案:

答案 0 :(得分:1)

注释,以及此代码示例用于GET请求:

const form = document.getElementById('searchform');
form.addEventListener('submit', evt => {
  const who = encodeURIComponent(document.getElementById('who').value);
  const where = encodeURIComponent(document.getElementById('where').value);
  const what = encodeURIComponent(document.getElementById('what').value);
  window.location.href = `/${who}/${where}/${what}`;
}