家伙!我正在寻找如何在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) {
})
答案 0 :(得分:0)
查看body-praser
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。