javascript - 如何将 HTML 文本框表单输入放入 Express Route 参数

标签 javascript html node.js mongodb express

我正在尝试创建一种方式,让用户通过这样的端点搜索我的 mongo 数据库:

app.get('/search/:input', function(req, res){
  console.log(`get request to: /members/${req.params.input}`);
  var regexValue = '\.*'+req.params.input+'*\.';
  db.collection(myCollection).find({"full_name": {$regex: regexValue, $options: 'i'}}).toArray((err, members) => {
    if(err) return console.log(err)
    console.log(members);
    res.render('search/list', {members: members});
  })
});

我希望他们能够在文本框中键入内容并让它直接执行此端点。我有一个非常简单的文本框,如下所示:

<form action="/search/">
  <input type="text" name="firstname" ><br>
  <input type="submit" value="Submit">
</form>

我的问题是我不知道一种干净的方法来将提交的字符串从文本框获取到请求参数中。

最佳答案

使用 Express Route app.get('/search/:input', function(req, res){:input 是路径参数输入,但是您的 html 表单将发出 GET 请求 /search/?firstname=firstname_value,该请求不会映射到路由。

使用 app.get('/search', function(req, res){ 代替当前代码,然后 console.log(get request to:/members/${req.query.firstname}); 如果你想使用 GET 方法。

(我不知道为什么日志显示/members/???而路由设置是/search/)

关于javascript - 如何将 HTML 文本框表单输入放入 Express Route 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48900333/

相关文章:

html - 向下箭头单击不适用于波纹环动画

html - :image taken from tumblr page content

javascript - NodeJS : Comparing each element of an array with all other elements with an async process?

javascript - 为什么在 Mongoose 模式中嵌套对象?

javascript - 滚动到页面顶部

还原页面时 Html/CSS 网页内容混合

javascript - 你如何检测 typeorm 中的密码等属性是否已更改

node.js - 在 mocha 测试中使用带有 ts-node 的断言

javascript - 让 DuckDuckHack Instant Answer 在自己的网站上运行

javascript - 缩放html页面的部分内容