如何在example.com/s/keyword上创建搜索结果页面?

时间:2017-05-02 07:08:12

标签: javascript angularjs node.js express search

app.js

app.get('/results',showResult)
var express = require('express')
var n = req.query.query;
mysql_crawl.query('SELECT prod_name, full_price FROM `xxx` WHERE MATCH(data_index) AGAINST("'+n+'")', function(error, product_data) {
res.render('result.html', {result: n, related: product_data: product_data})
        });

result.html

<form action= '/results' class="input-group input-group-lg" id="search">
         <input type="text" class="input-group form-control"  name="query" value='<%= result %>'/>
               <span class="input-group-btn">
                     <button class="btn btn-secondary" type='button'>Search</button>
               </span>
</form>

当我搜索时,我会收到一个类似example.com/results?query=keyword的网址,但我想要一个example.com/s/keyword的结果页面。

两个页面应该是相同的结果。如果我更改了网址中的关键字,则应显示该关键字的搜索结果。

所以我的问题是,如何创建example.com/s/keyword页面以复制example.com/results?query=keyword的结果?

2 个答案:

答案 0 :(得分:0)

app.get('/s/price/:sea_query', function (req, res) {
    var n = req.params.sea_query;
};

我可以使用它从url获取数据,谢谢:)

答案 1 :(得分:0)

您可以创建新路线

app.get('/s/:keyword', function (req, res) {
    var n = req.params.keyword;
    // do rest of the task
};

您可以创建一个函数,然后在两个路径中调用相同的函数,而不是在两个路径中重复相同的代码。