req.query
和req.param
之间的主要差异
假设一个客户端在请求中发送说(Android,Key)对........使用哪一对?
[编辑]
假设android发送POST请求 - >意图是将(Key,Value)发送到客户端,服务器应该根据服务器中的值执行数据库查询并返回JSON响应
请看::我引用的程序的问题::Simple Express program for querying a result
答案 0 :(得分:73)
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
是一个从请求中剥离参数的函数。所有这一切都可以找到here。
<强>更新强>
如果动词是POST
并且您使用的是bodyParser
,那么您应该能够使用req.body
获取功能中的表单正文。这将是POST
ed表格的解析JS版本。
答案 1 :(得分:11)
我建议使用以下
req.param('<param_name>')
req.param(“”)的工作原理如下
按以下顺序执行查找:
req.params
req.body
req.query
为了清楚起见,应该直接访问req.body,req.params和req.query - 除非您真正接受来自每个对象的输入。
答案 2 :(得分:10)
req.query
是发送到服务器的查询字符串,例如/page?
test = 1 ,req.param
是传递给处理程序的参数。
app.get('/user/:id', handler);
,转到/user/blah
,req.param.id
会返回blah
;
答案 3 :(得分:4)
传递参数
GET request to "/cars/honda"
返回本田车型列表
传递查询
GET request to "/car/honda?color=blue"
返回本田车型列表, 但过滤后只返回库存颜色为蓝色的模型。
将这些过滤器添加到URL参数(/ car / honda / color / blue)是没有意义的,因为根据REST,这意味着我们想获得一些关于颜色和#34;蓝色&#34 ;.由于我们真正想要的是本田模型的过滤列表,我们使用查询字符串来过滤返回的结果。
请注意,查询字符串实际上只是{key:value}对,格式略有不同:?key1 = value1&amp; key2 = value2&amp; key3 = value3。