Express.js - 如何为搜索过滤器调用多个参数?

时间:2018-06-03 13:55:10

标签: express

家伙!我正在寻找如何在expressjs中为搜索过滤器提供多个参数,例如:

website.com/properties/London/maxRooms=5&garden=yes&parking=yes

适用于maxRooms,花园和停车场

但有时候我只想申请一个过滤器,例如:

website.com/properties/garden=yes

我是否必须在单独的行中为每个参数编写每个GET?

像:

app.get('/properties/maxRooms=:max&garden=:garden&parking=:parking', function (req, res) {

})

app.get('/properties/garden=:garden', function (req, res) {

})

1 个答案:

答案 0 :(得分:0)

查看body-praser

  

https://www.npmjs.com/package/body-parser

https://expressjs.com/en/4x/api.html

` 这是Express中的内置中间件功能。它使用JSON有效负载解析传入的请求,并基于正文解析器。

返回仅解析JSON的中间件,仅查看Content-Type标头与type选项匹配的请求。此解析器接受正文的任何​​Unicode编码,并支持gzip和deflate编码的自动膨胀。

在中间件(即req.body)之后的请求对象上填充包含已解析数据的新body对象,如果没有要解析的主体,则填充空对象({}),Content-Type不匹配,或发生错误。 `

基本上,输入“/ properties / *”并做一个检查你的req.params或req.body.params的中间件;

喜欢app.get('/prooperties/*', (req, res) => { // params will came as an array of objects if i remember righht, please check body-parser req.body.params });

app.get('/properties/maxRooms*'.... req.body.params );

但是如果您使用的是JSON支持的语言,或者您可以提交整个表单,请避免使用url params。