1,node.js处理get和post请求
案例:
//**
* Created by Administrator on 13-11-17.
*/
//这个是我的website的http服务器文件
var http = require('http');
//加入文件系统的模块
var fs = require('fs');
//处理get请求加入url模块
var url = require('url');
//加入querystring模块来处理post请求
var querystring = require('querystring');
http.createServer(function(req,res){
var method = req.method;
//得到req.url的参数列表
var params = url.parse(req.url,true);
var uri ="html/";
var path = params.pathname;
console.log(method+"---"+path);
if(method === "GET"){
switch (path){
case "/"://处理默认的主页跳转
case "/index.html":
uri = "index.html";
handleGet(uri,params,res);
break;
case "/html/add.html":
uri += "add.html";
handleGet(uri,params,res);
break;
case "/html/delete.html":
uri += "delete.html";
handleGet(uri,params,res);
break;
case "/html/find.html":
uri += "find.html";
handleGet(uri,params,res);
break;
case "/html/edit.html":
uri += "edit.html";
handleGet(uri,params,res);
break;
default :
console.log("Indivald request "+url);
}
}else{
//处理post请求
switch (path){
case "/html/add":
handlePost(req,res,querystring);
break;
default :
console.log("Indivald request "+path);
}
}
}).listen(8888);
console.log("My httpServer is listening on 8888 port...");
/**
* 使用fs来读取到指定的uri的html文件中的内容返回给浏览器,
* @param uri 指向要读取的html文件的uri
*/
function handleGet(uri,params,res){
fs.readFile(uri,function(err,data){
if(err) throw err;
//设置返回的头信息
res.setHeader("Content-type","text/html");
res.setHeader("Content-Encoding","utf-8");
//将参数列表的字符串params.query转换成json格式
var jsonData = JSON.stringify(params.query);
//在将json数据转成对象
var objData = JSON.parse(jsonData);
//然后通过对象.属性取出get参数值
res.write(objData.id+"--"+objData.name+"<br/>");
res.write(data.toString());
res.end();
});
}
/**
* 通过req.on()和req.end()两个事件来获取post提交的数据
* @param req ServerRequest
* @param res ServerResponse
* @param querystring querystring模块对象
*/
function handlePost(req,res,querystring){
var post = '';
//正在读取post过来的数据到post字符串变量中
req.on('data', function(temp) {
post += temp;
});
//在传递完成后,通过querystring模块将post过来的数据转成一个对象
//然后通过对象.属性取出相应的属性即可。
req.on('end', function() {
post = querystring.parse(post);
res.write(post.username);
res.write(post.password);
res.end();
});
}