108

Express之间的req.query主要区别req.param

  • 两者有何不同
  • 什么时候用 那么在什么情况下

假设客户端在请求中发送说 Android (Key,value) 对 ........ 使用哪一个?

[编辑]

假设 android 发送一个 POST 请求 -> Intention 是向客户端发送 (Key,Value) 并且服务器应该根据服务器中的值执行数据库查询并返回 JSON 响应

看::这个问题我引用的程序::用于查询结果的简单快速程序

4

4 回答 4

142

req.query解析查询字符串后会返回一个JS对象。

/user?name=tom&age=55 -req.query会产生{name:"tom", age: "55"}

req.params将在匹配的路由中返回参数。如果您的路线是/user/:id并且您向/user/5发出请求-req.params将产生{id: "5"}

req.param是一个从请求中剥离参数的函数。所有这些都可以在这里找到。

更新

如果动词是 aPOST并且你正在使用bodyParser,那么你应该能够在你的函数中获得表单体req.body。那将是POSTed 表单的解析 JS 版本。

于 2013-08-30T02:55:24.830 回答
21

req.query是发送到服务器的查询字符串,例如/page?test=1req.param是传递给处理程序的参数。

app.get('/user/:id', handler);, 去/user/blah,req.param.id会回来blah;

于 2013-08-30T02:50:04.437 回答
16

我建议使用以下

req.param('<param_name>')

req.param("") 工作如下

查找按以下顺序执行:

req.params
req.body
req.query

为清楚起见,应优先使用对 req.body、req.params 和 req.query 的直接访问 - 除非您真正接受来自每个对象的输入。

参考:http ://expressjs.com/4x/api.html#req.param

于 2014-06-05T15:39:01.977 回答
11

传递参数

GET request to "/cars/honda" 

返回本田汽车型号列表

通过查询

GET request to "/car/honda?color=blue"

返回本田汽车模型的列表,但经过过滤,因此仅返回具有蓝色库存颜色的模型。

将这些过滤器添加到 URL 参数(/car/honda/color/blue)中是没有意义的,因为根据 REST,这意味着我们想要获得一堆关于颜色“蓝色”的信息。由于我们真正想要的是经过筛选的 Honda 车型列表,因此我们使用查询字符串来过滤返回的结果。

请注意,查询字符串实际上只是 { key: value } 对,格式略有不同:?key1=value1&key2=value2&key3=value3。

于 2018-03-28T13:02:51.227 回答