req.query and req.param in ExpressJS

req.queryreq.param在快车上的主要区别

  • 两者有什么不同
  • When to use then in what cases

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

[编辑]

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

看: : 在我引用的程序中的这个问题: : 查询结果的简单快捷程序

213318 次浏览

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

app.get('/user/:id', handler);/user/blahreq.param.id返回 blah;

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

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

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

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

更新

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

我建议使用如下

req.param('<param_name>')

Param (“”)的工作原理如下

Lookup is performed in the following order:

req.params
req.body
req.query

直接访问 req.body、 req.params 和 req.query 应该受到青睐,以便清晰明了——除非您真正接受来自每个对象的输入。

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

传球

GET request to "/cars/honda"

返回一份本田汽车型号的清单

传递问题

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

返回一份本田车型的清单, 但经过过滤后,只返回原色为蓝色的模型。

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

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