ExpressJS中的req.query和req.param

69 node.js express

Express req.queryreq.paramExpress 之间的主要区别

  • 两者如何彼此不同
  • 何时使用,那么在什么情况下

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

[编辑]

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

看看::这个问题,因为我参考的节目::简单快速的程序,用于查询结果

arb*_*arb 91

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是一个从请求中剥离参数的函数.所有这一切都可以在这里找到.

UPDATE

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

  • 更新的答案. (2认同)

Abh*_*wad 13

我建议使用以下

req.param('<param_name>')
Run Code Online (Sandbox Code Playgroud)

req.param("")的工作原理如下

查找按以下顺序执行:

req.params
req.body
req.query
Run Code Online (Sandbox Code Playgroud)

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

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


One*_*One 10

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

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


Shi*_*tri 6

传递参数

GET request to "/cars/honda" 
Run Code Online (Sandbox Code Playgroud)

返回本田汽车型号列表

传递查询

GET request to "/car/honda?color=blue"
Run Code Online (Sandbox Code Playgroud)

会返回本田汽车型号列表,但会对其进行过滤,因此仅会返回库存颜色为蓝色的型号。

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

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