如何为数据库查询的多个可选参数创建单个快速端点?

时间:2019-07-20 12:09:40

标签: node.js rest express

我被困在Express中路由。我想为多个可选请求参数创建一条路由,以根据客户端的给定参数从数据库中获取记录。

我正在使用这个:

“ / search /:名字?/:姓氏?/:部门?/:名称?”

上述网址中的问题是:如果用户仅按部门搜索,则部门将被映射为firstName

3 个答案:

答案 0 :(得分:1)

一种更好的解决方法是使用查询参数。因此,如果用户只想按部门搜索,则示例请求网址将如下所示:

/search?department=education

多个参数将由&分隔。例如:

/search?department=education&firstName=john

您可以像下面这样以明示方式访问此信息:

// ...
router.get('search', function(req, response){
      var department = req.query.department;
      var firstName = req.query.firstName;
      // ...
})

答案 1 :(得分:0)

在这种情况下,查询参数是最佳选择。

答案 2 :(得分:0)

谢谢大家向我建议查询参数的概念。我是Express的新手,并不知道查询参数。 使用查询参数,我的URL看起来像这样,并且运行良好:

localhost:5000 / recipients / search /?firstName =&lastName =&designation =&department = PROD-01