node.js--express框架的get和post方法

一、get方法

1.建立一个router.js文件 给出配置路由的get方法

let url = require("url");
//定义一个路由的空对象
let router = {};
let app=(require,response)=>{       //服务器封装方法
    response.writeHead(200,{"Content-Type":"text/html;charset=utf-8;"});
    let path = url.parse(require.url,true);   
    let pathname = path.pathname;
    if(pathname!="/favicon.ico"){
        //检测路由是否存在
        if(router[pathname]){   //如果router中存在 pathname
            router[pathname](require,response); //执行其对应的函数
        }
        response.end();
    }
}
//封装get方法
app.get=(string,callback)=>{
    //注册路由 
    router[string]=callback;
   // ***相当于给router对象中添加一对键值对***
   // ***router={"string":()=>{}}***
}
module.exports=app;
2.在需要的文件中引入
let app=require("./router");
//调用get()方法  参数一:路径   参数二:回调函数 
app.get("/",(require,response)=>{
   //相关操作 ...
    response.write("我是get路由");
});

app.get 方法中回调函数的函数体还可以再进行封装

1.在router.js 中封装一个send方法
let app=(require,response)=>{
  response.send=(string)=>{
      response.end(string);
  }
}  

上述get方法可以写为:

let app=require("./router");
app.get("/",(require,response)=>{
   //相关操作 ...
    app.send("我是get路由");
});

二、post方法

post方法的定义和使用与get相同   send方法的封装也相同
//封装post方法
app.post=(string,callback)=>{
    router._post[string]=callback;
}

三、get和post路由的检测及获取传值

1.建立一个空的路由对象,对象中再分别定义两个对象 "get路由""post路由"
let router = {};
router._get={};   //get路由
router._post={};   //post路由
2.根据 对象[]  的方法去检测 并取出相应的传值

    let path = url.parse(require.url,true);
    let pathname = path.pathname;
    if(pathname!="/favicon.ico"){
        if(router._get[pathname]){      //get路由检测
            let query  = url.parse(require.url,true).query;
            response.body = query;
            router._get[pathname](require,response);
        }else  if(router._post[pathname]){     //post路由检测
            let info="?";
            require.on("data",(params)=>{
                info+=params;
            })
            require.on("end",()=>{
                // console.log(info);
                let query  = url.parse(info,true).query;
                response.body = query;
                router._post[pathname](require,response);
            })
        }else{
            console.log("404");
        }
        response.end();
    }
可以通过 require.method  判断数据提交方式 get/post
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值