Node.js:req.query 和req.params之间的区别
通过req.query [myParam]和req.params.myParam获取QUERY_STRING参数是否有区别? 如果是这样,我应该什么时候使用哪个?
谢谢。
req.params
包含路由参数(在URL的path部分), req.query
包含URL查询参数(在URL中的?
之后)。
您也可以使用req.param(name)
在两个地方(以及req.body
)查找参数,但现在不推荐使用此方法。
鉴于这条路线
app.get('/hi/:param1', function(req,res){} );
并提供此urlhttp://www.google.com/hi/there?qs1=you&qs2=tube
你将会拥有:
REQ。 询问
{ qs1: 'you', qs2: 'tube' }
REQ。 PARAMS
{ param1: 'there' }
快递req.params >>
您现在应该可以使用点符号来访问查询。
如果你想访问,说你正在/checkEmail?type=email&utm_source=xxxx&email=xxxxx&utm_campaign=XX
收到一个GET请求,你想取出使用的查询 。
var type = req.query.type, email = req.query.email, utm = { source: req.query.utm_source, campaign: req.query.utm_campaign };
参数用于接收请求的自定义参数,例如(示例):
router.get('/:userID/food/edit/:foodID', function(req, res){ //sample GET request at '/xavg234/food/edit/jb3552' var userToFind = req.params.userID;//gets xavg234 var foodToSearch = req.params.foodID;//gets jb3552 User.findOne({'userid':userToFind}) //dummy code .then(function(user){...}) .catch(function(err){console.log(err)}); });