最近接手公司之前一人留下的一个项目。我看他的代码里在处理get请求参数的时候是这么做的: 假如请求url为:http://www.test.com?uid=123&pwd=456
var url = require('url');
func(req,res){
var getQuery = url.parse(req.url, true).query,
uid = getQuery['uid'],
pwd = getQuery['pwd'];
}
他是这样取get请求里参数值的。但是 通过req对象里的query对象直接可取到该url所有请求参数和参数值(如下),他为什么还要通过url模块来转一次?
func(req,res){
var uid = req.query.uid,
pwd = req.query.pwd;
}
这样取不是更方便吗?为什么还要用url模块呢?
你要确定你是EXPRESS框架。万一你前辈跟我一样不喜欢三方框架,自己撸了~
var uid = req.query.uid,
pwd = req.query.pwd;
这种功能是由body.parse提供的 看看package.json/app.js 有没有body.parse 没有的话我觉得就是这样了=。=
@zhuyingda node版本是0.10.32,开发环境windows,生产环境ubuntu
@MiguelValentine 噢,用的是express框架。 req.query.xxx 是第三方框架的了?
@gjc9620 之前有用express.bodyParser,后来换成了connect-multiparty。 我去掉这个模块试试结果。 谢谢!
@zhuyingda 多谢!
我觉得应该是之前的开发用的是原生 http 模块,后来移植到 express 之后,由于 express 的 res 和 req 是兼容原生模块的,所以这块的代码没有改。
@alsotang 哦,谢谢!