node.js 接收post请求

部分内容参照 http://www.holdyourdream.com/blog/?p=25 和 http://cnodejs.org/blog/?p=2207

使用data和end事件来获取post数据,代码如下:

var http = require('http');
var server = http.createServer();
var querystring = require('querystring');
var firstPage = function(res){
	res.writeHead(200, {'Content-Type': 'text/html'});
	var html = '<html><body>'+
		'<form action="/login" method="post">'+
		'name:<input type="text" name="name"> </br>'+
		'password:<input type="password" name="pwd"></br>'+
		'<input type="submit" value="login">'+
		'</form>'+
		'</body></html>';
	res.end(html);
}

var login = function(req, res) {
	var info ='';
	req.addListener('data', function(chunk){
		info += chunk;
     })
	.addListener('end', function(){
		info = querystring.parse(info);
		if(info.name == 'a' && info.pwd =='1'){
			res.end('login success ' + info.name);
		}else{
			res.end('login failed ' + info.name);
		}
	 })
}

var requestFunction = function (req, res){
	if(req.url == '/'){
		return firstPage(res);
	}
	if(req.url == '/login'){
		if (req.method != 'POST'){
			return;
		}
		return login(req, res)
	}
}

server.on('request',requestFunction);
server.listen(1337, "127.0.0.1");

console.log('Server running at http://127.0.0.1:1337/');

以上代码实现了一个登录验证用户,将以上代码保存到 example4.js

cmd键入 node example4.js

node.js 接收post请求_第1张图片

浏览器地址栏键入 http://127.0.0.1:1337/

node.js 接收post请求_第2张图片

如果输入name:a password:1 点击login

node.js 接收post请求_第3张图片


如果输入name:a password:2 点击login

node.js 接收post请求_第4张图片


该例子 from使用的是默认的application/x-www-form-urlencoded,如果同时要上传文件的话使用multipart/form-data,如何解析请参照http://cnodejs.org/blog/?p=2207

你可能感兴趣的:(html,server,function,node.js,input,login)