我被困在Express中路由。我想为多个可选请求参数创建一条路由,以根据客户端的给定参数从数据库中获取记录。
我正在使用这个:
“ / search /:名字?/:姓氏?/:部门?/:名称?”
上述网址中的问题是:如果用户仅按部门搜索,则部门将被映射为firstName
答案 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