2012年5月7日星期一

NODE 处理 POST 请求

FROM: node.js 接收post请求
[js]
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.on('data', function(chunk) {
info += chunk;
});

req.on('end', function() {
info = querystring.parse(info);

console.log(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, '172.10.7.228');

console.log('server running at at http://172.10.7.228:1337');
[/js]

代码实现了一个登录验证用户。FORM 的 enctype 属性使用的是默认的 application/x-www-form-urlencoded,如果要上传文件的话则需要设置为 multipart/form-data

没有评论:

发表评论