03.获取get和post数据

获取get数据

获取get数据需要引入url模块,例子 :

var http = require('http');
var urlManager = require('url');

var server = http.createServer(function(req,res){

	if (req.url === '/favicon.ico') {return;}

	var msg = urlManager.parse(req.url, true);

	console.log(msg.query);	

	res.end();
});

server.listen(8080);

地址栏输入 :http://localhost:8080/?name=tom&age=18, 后天即可获取到{ name: 'tom', age: '18' }


获取post数据

POST发送数据最多能发送1G的内容,因为太大,所以POST发送数据是分段式(把数据切成一段一段)发送的。(比如QQ发了一个3G的文件,若此时发送了99%,然后断网了。只会丢失一部分数据,之前发送的99的数据都不会丢失。所以不用从头发送)

所以node接受POST数据的时候,需要用一个data事件,当有POST数据发送过来的时候,这个事件就回去调用回调函数,回调函数返回的data就是当前获取到的一部分数据。

除此之外,还需要注册一个end事件,当POST数据完全发送完毕后,改事件会执行。

例子 :

html




	
	Document


	

账号 :

密码 :

js

var http = require('http');
var querystring = require('querystring');	

var server = http.createServer(function(req,res){

	if (req.url === '/favicon.ico') {return;}

	var str = '';
	var i = 0;	
	req.on('data', function(data){  //data事件

		console.log('第'+(++i)+'数据');
		str+=data;
	});

	req.on('end', function(){  //end事件,当data事件接受完毕后,会自动调用该事件
		console.log(querystring.parse(str));	
	})

	res.end();
});

server.listen(8080);

现在直接打开html页面,输入数据后点击登录按钮,后台即可获取到前台输入的信息。

上面的例子中,我们还引入了一个querystring,该模块可以帮助我们把 name=tom&age=18转换成{ name:tome, age:18 } 这种json格式。

ps : querystring还可以解决乱码的问题,乱码是因为用户输入的是中文

你可能感兴趣的:(node)