0

我用 HTML 编写了一个非常简单的表单,它使用 Express 将 GET 信息发送到我的 Node.JS 服务器。这是表格:

    <form method="get" action="/search" autocomplete="off" class="navbar-search pull-left">
       <input name="search" type="text" id="search" data-provide="typeahead" placeholder="Search..." />
    </form>

这是服务器部分:

app.get('/search', function (req, res){

   console.log(req.query["search"]);

   res.render('search.ejs')

});

当我在输入中写入内容并按 Enter 键时,页面会持续加载很长时间,并且当我进入时收到 340 错误,例如在http://localhost:8080/search?search=foo. 我认为我的 from 有问题,它没有正确发送值,因为它也不适用于POST请求。有什么解决办法吗?

谢谢提前!

4

3 回答 3

2

这是因为您必须使用 req.params.search 而不是 req.query 不起作用。

app.get('/search', function (req, res){
   var search = req.query.search;

   console.log(search);

   res.render('search.ejs')

});

在这里您可以了解更多信息: http ://expressjs.com/api.html#req.param

于 2013-03-12T21:26:02.310 回答
0

下次要找出错误,输入app.get(... console.log(res, req);并找到变量的位置。

于 2013-03-13T10:30:43.957 回答
0

非常有趣,对我来说它有效!

app.get('/search', function (req, res){
   var search = req.query;

   console.log(search, 'of type', typeof search);
   res.send("the query is about the student with name " + search.sname + ' and subject '+search.ssubject );

});

用表格

<form method= 'GET' action="/search" autocomplete="off">
            Student Name:<br>
            <input type="text" name="sname">
            <br>
            Student Subject:<br>
            <input type="text" name="ssubject">
            <br>
            <input type="submit" value="Submit">
            <input type="reset" value="Reset">
        </form>
于 2018-12-07T18:31:01.253 回答