首页 > 解决方案 > 使用 req.params node.js 进行多次搜索

问题描述

我对 Node.js 相当陌生,我想执行多个搜索。我尝试使用req.params从文本框中获取搜索值,但我的代码不起作用。我试图安慰req.params.city,但没有显示任何内容。我正在使用 MySQL 数据库。

请在下面查看我的代码:

索引.js

  router.get('/searche/:city/:date',function(req,res){
  let q = [req.params.city];
  console.log(q)
  db.query('SELECT  city_name, state_name, party_name, price, image, 
address, full_name  FROM register natural join party where userid = id and city_name LIKE "%'+req.params.city+'%" ' ,function(err, rows, fields) {
  if (err) throw err;
  res.render('test', {party: rows});
  });
 });

表单.ejs

  <form action="/searche"  autocomplete="off">
        <input id="city" type="text" name="city" placeholder='Try "Minneapolis"'>
        <input placeholder="Choose Date" class="textbox-n" name = "date" type="text" onfocus="(this.type='date')" onblur="(this.type='text')" id="date">
        <button type="submit" class="searchButton"> <i class="fa fa search"></i></button>
   </form>

标签: mysqlnode.jsparameters

解决方案


您可能会感到困惑params,并且body.

params用于PATH parameters参数化请求路径,例如在您的示例中,/searche/london/08-25-2019

表单数据通常是这样,body当然,除非您以某种方式对其进行修改。所以你可以这样做:

router.get('/searche',function(req,res) {
  // req.body.city gets you city input
  ...
}

注意:您必须像这样安装body-parserexpress内置express.json()


推荐阅读