node.js处理get和post请求

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();
    });
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值