ExpressJS中的req.query和req.param

时间:2013-08-30 02:44:48

标签: node.js express

Express

req.queryreq.param之间的主要差异
  • 两者如何彼此不同
  • 何时使用

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

[编辑]

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

请看::我引用的程序的问题:Simple Express program for querying a result

4 个答案:

答案 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 - 除非您真正接受来自每个对象的输入。

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

答案 2 :(得分:10)

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

app.get('/user/:id', handler);,转到/user/blahreq.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。