js文件里:
/**
* Created by Administrator on 16-5-17.
* 处理post请求
* 在NodeJS中处理Post请求与处理get请求的方式不同,需要单独处理不像get可以直接获取
* 需要注册两个listener来实现,分别是data和end的两个listener
*/
var http=require('http');
var qs=require("querystring");
/**
* 控制路由的功能
* @param path
* @param req
*/
function rotuteHandle(path,req){
if(res.url=='/login'&&req.method.toLowerCase()=='post'){
console.log("获取login的post请求");
return 'post method';
}
return 'get method';
}
/**
* 回调函数
* @param req
* @param res
*/
function onRequest(req,res){
res.writeHead(200,{ "Content-Type":"Text/plain"});
if(req.url=='/login'&&req.method.toLowerCase()=='post'){
var postData="";
req.addListener('data',function(data){
postData+=data;
});
req.addListener('end',function(){
console.log("获取post参数成功")
console.log(postData);
var content=qs.parse(postData).text;
res.write(content);
res.end();
});
}else{
res.write("other method");
res.end();
}
}
http.createServer(onRequest).listen(5000);
console.log("Server is listening right now ....");
html文件里:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表单</title>
</head>
<body>
<form method="post" action="http://localhost:5000/login">
<textarea name="text" cols="20"></textarea>
<input type="submit" value="Commit"/>
</form>
</body>
</html>