Node Express获取参数的几种方法

前段时间在写项目的过程中首次用node写了后台API,在写的过程中也遇到了不少问题,现在统一的过一遍,整理一遍。区分一下req.body,req.params,req.param(),req.query的使用场景。

首先,express(version 4.x)中req获取参数有三种方式,分别是:
1.req.body
2.req.params
3.req.query
还有一个方法已经被废弃——req.param。

req.body=>

req.body并不是node默认提供的,而是配合Express中间件bodyParser()使用的,需要下载body-parser中间件,依此来解析body。在bodyParser()中间件使用之后,这个对象默认为{},req.body可以获取到POST到body中的内容。(使用方法:req.body.xxx);

req.params=>

req.params是一个数组对象,命名过的参数会以键值对的形式存放。多适用于restful风格url中的参数解析,包含路由参数(在URL的路径部分)。(使用方法:req.params.xxx);

req.query=>

query是querystring,是解析过的请求参数对象,默认为{},包含URL的查询参数(?后的)。(使用方法:req.query.xxx);

req.param=>

req.param()是req.query,req.body,req.params三种方式的封装,查询优先级为:req.params>req.body>req.query,现在已经被废弃。(使用方法:req.param(xxx),返回的是xxx参数的值);
就这个方法,我在启动node服务之后一直报错,就是因为我的express版本是最新的版本,而req.param只适用于4.x一下的express,所以两者不能相容,为此,我专门去把自己的express换成了老版本。。。好傻^-^,换方法不就对了~

总结

1.path中的变量==>req.params.xxx

2.get请求的’?xxx=yyy’==>req.query.xxx(但是也不一定只能用来解析get请求)

3.post请求中的变量==>req.body.xxx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值