【问题标题】:How to use POST , GET for making search-box in Nodejs如何使用 POST , GET 在 Nodejs 中制作搜索框
【发布时间】:2016-12-21 04:00:23
【问题描述】:

我想发布并从表单值中获取 getparameter 关键字并使用此查询

SELECT * from cider.cid_contents 
where con_content like \'%'+ keyword +'%\' 
order by con_no desc;

但我不知道如何从 post 或 form 方法中获取关键字值。 有代码

搜索.js

var express = require('express');
var router = express.Router();
var mysql = require("./model/mysql");

/* GET home page. */
router.post('/search/process', function(req, res, next) {

    var keyword = req.body.keyword;

    console.log(keyword);

    res.redirect('/search');


  });

router.get('/search/:keyword', function(req, res, next) {
    var keyword;
    keyword = req.params.keyword;
    console.log("+++++");
    console.log(keyword+"1234");
    mysql.select('SELECT * from cider.cid_contents where con_content like \'%'+ keyword +'%\' order by con_no desc;',


    function (err, data){
        if (err) throw err;

    res.render('front/search/search', { contents : data});
  });
});


module.exports = router;

这是一个表单标签(top.ejs)

<form action="/search/process" method="post">
                <input type="text" class="form-control web-search-box" placeholder="search" name="keyword" value=''></div>
                <div id="search" class="search col-sm-1"><img src="../../page_imgs/fixed_img/icon_search.png"></div>
                <input type="submit" value="send">
                </form>

/搜索 (search.ejs)

<table class="bordered">
        <thead>
          <tr>
              <th data-field="no">num</th>
              <th data-field="title">title</th>
              <th data-field="date">date</th>
              <th data-field="viewCount">count</th>
              <th data-field=""></th>
          </tr>
        </thead>
        <tbody>

        <% for(var i = 0; i<contents.length; i++) { %>
            <tr>

                <td><%= contents[i].con_no %></td>
                <td><a href="/adm/contents/detail/<%= contents[i].con_no %>"><%= contents[i].con_title %></a></td>
                <td><%= contents[i].con_regDate %></td>
                <td><%= contents[i].con_viewCount %></td>
                <td><a href="/adm/contents/delete/<%= contents[i].con_no %>">delete</a></td>
            </tr>
        <% } %> 
        </tbody>
      </table>

【问题讨论】:

    标签: html mysql sql node.js parameters


    【解决方案1】:

    使用正文解析器。

    var bodyParser = require('body-parser');
    app.use(bodyParser.urlencoded({extended: true}));
    
    router.post('/search/process', function(req, res, next) {
    
      console.log(req.body);
    
    });
    

    有关示例,请参阅 https://scotch.io/tutorials/use-expressjs-to-get-url-and-post-parameters#post-parameters

    【讨论】:

      猜你喜欢
      • 2016-10-04
      • 2010-09-22
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 2021-05-03
      • 2019-09-05
      相关资源
      最近更新 更多