【nodejs】处理get/post信息

(一)处理get信息:
1.对req.url数据进行分段切分
例:
比如我们现在前台传输一个url是localhost:3000/login?user=aaa&pass=123

【注】目标是将分割好的数据放入GET中

首先,将req.url进行以’?'字符分割

var GET = {};//用来存放最终的数据
var arr = req.url.split('?')//将req.url数据以?分割开并存入arr中;
//此时
//arr[0]='/login'    =>地址
//arr[1]='user=aaa&pass=123'   =>数据

接下来再对arr[1]进行分割

var arr2 = arr[1].split('&');
//此时
//arr2[0]=‘user=aaa’
//arr2[1]='pass=123'

最后,再对arr2进行分割

for(var i=0;i<arr.length;i++)
{
	var arr3 = arr2[i].split('=');
	GET[arr3[0]]=arr3[1];
}

2.querystring

const queryString = require('querystring');
var arr = req.url.split('?');
//此时
//arr[0]='/login'    =>地址
//arr[1]='user=aaa&pass=123'   =>数据
var GET = queryString.parse(arr[1]);

以上两种方法获取到的GET数据是一样的

3.URL

1)不解析query

const urlLib = require('url');
var obj = urlLib.parse("http://www.baidu.com/index?a=1&b=2&c=3");
console.log(obj);

在这里插入图片描述
2)解析query

const urlLib = require('url');
var obj = urlLib.parse("http://www.baidu.com/index?a=1&b=2&c=3",true);
console.log(obj);

在这里插入图片描述
综上,最终的GET可以得

var GET = obj.query;

(二)处理post数据
post数据传输和get数据不同,他并不存放在地址中的,获取他需要用到一个事件
即req.on();

req.on('data',function(){
})

和data事件相对应的有一个end事件

req.on('end',function(){
})

且post方法的数据是分片传输的,所以我们还需要一个组装该数据的过程,定义一个

var str = ''; //用来接收分片的数据

综上,总结代码如下

var str = ''; //用来接收分片的数据
req.on('data',function(data){
	str += data;
});
//数据全部到达时
req.on('end',function(){
	console.log(str); 
})

最后,再对str进行处理一下

var POST = queryString.parse(str);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值