最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nodejs封裝類似express框架的路由實例詳解

 更新時間:2020年01月05日 11:25:00   作者:loaderman  
在本篇文章里小編給大家整理的是關(guān)于Nodejs封裝類似express框架的路由實例內(nèi)容,有需要的朋友們學(xué)習(xí)下。

代碼如下

var http=require('http');

var ejs=require('ejs');

var app=require('./model/express-route.js');

console.log(app);

http.createServer(app).listen(3000);

app.get('/',function(req,res){

  var msg='這是數(shù)據(jù)庫的數(shù)據(jù)'

  ejs.renderFile('views/index.ejs',{msg:msg},function(err,data){

    res.send(data);
  })
})


//登錄頁面
app.get('/login',function(req,res){

  console.log('login');

  ejs.renderFile('views/form.ejs',{},function(err,data){

    res.send(data);
  })

})

//執(zhí)行登錄
app.post('/dologin',function(req,res){

  console.log(req.body); /*獲取post傳過來的數(shù)據(jù)*/

  res.send("<script>alert('登錄成功');history.back();</script>")
})


app.get('/register',function(req,res){

  console.log('register');

  res.send('register');
})

app.get('/news',function(req,res){

  console.log('register');

  res.send('新聞數(shù)據(jù)');
})

express-route.js

var url=require('url');

//封裝方法改變res 綁定res.send()
function changeRes(res){

  res.send=function(data){

    res.writeHead(200,{"Content-Type":"text/html;charset='utf-8'"});

    res.end(data);
  }
}

//暴露的模塊
var Server=function(){


  var G=this;  /*全局變量*/

  //處理get和post請求
  this._get={};

  this._post={};



  var app=function(req,res){


    changeRes(res);

    //獲取路由
    var pathname=url.parse(req.url).pathname;
    if(!pathname.endsWith('/')){
      pathname=pathname+'/';
    }

    //獲取請求的方式 get post
    var method=req.method.toLowerCase();


    if(G['_'+method][pathname]){

      if(method=='post'){ /*執(zhí)行post請求*/

        var postStr='';
        req.on('data',function(chunk){

          postStr+=chunk;
        })
        req.on('end',function(err,chunk) {

          req.body=postStr; /*表示拿到post的值*/


          //G._post['dologin'](req,res)

          G['_'+method][pathname](req,res); /*執(zhí)行方法*/

        })



      }else{ /*執(zhí)行g(shù)et請求*/
        G['_'+method][pathname](req,res); /*執(zhí)行方法*/

      }

    }else{

      res.end('no router');
    }

  }

  app.get=function(string,callback){
    if(!string.endsWith('/')){
      string=string+'/';
    }
    if(!string.startsWith('/')){
      string='/'+string;

    }

    //  /login/
    G._get[string]=callback;

  }

  app.post=function(string,callback){
    if(!string.endsWith('/')){
      string=string+'/';
    }
    if(!string.startsWith('/')){
      string='/'+string;

    }
    //  /login/
    G._post[string]=callback;

    //G._post['dologin']=function(req,res){
    //
    //}
  }

  return app;

}

module.exports=Server();

以上代碼很簡單,大家可以測試下,如果有任何疑問和補充可以聯(lián)系小編,更多內(nèi)容可以查看以下相關(guān)知識點。

相關(guān)文章

  • node實現(xiàn)登錄圖片驗證碼的示例代碼

    node實現(xiàn)登錄圖片驗證碼的示例代碼

    這篇文章主要介紹了node實現(xiàn)登錄圖片驗證碼的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • node使用request請求的方法

    node使用request請求的方法

    這篇文章主要介紹了node使用request請求的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • NodeJS學(xué)習(xí)筆記之Connect中間件模塊(一)

    NodeJS學(xué)習(xí)筆記之Connect中間件模塊(一)

    這是一個目錄概要,里面記錄著NodeJS的基礎(chǔ)知識部分,今天這篇文章以及后續(xù)的幾篇,將是一個進階系列,讓我們建立一個由淺入深的學(xué)習(xí)的過程,
    2015-01-01
  • Linux環(huán)境部署node服務(wù)并啟動詳細步驟

    Linux環(huán)境部署node服務(wù)并啟動詳細步驟

    最近用node.js開發(fā)了一個web項目,下面這篇文章主要給大家介紹了關(guān)于Linux環(huán)境部署node服務(wù)并啟動的詳細步驟,文中通過圖文以及示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • 使用Node.js創(chuàng)建一個簡單的HTTP服務(wù)器的示例代碼

    使用Node.js創(chuàng)建一個簡單的HTTP服務(wù)器的示例代碼

    Node.js 是一種強大的 JavaScript 運行環(huán)境,允許開發(fā)者在服務(wù)器端運行 JavaScript 代碼,它以異步事件驅(qū)動的方式處理大量連接,適合構(gòu)建高效的網(wǎng)絡(luò)應(yīng)用程序,在這篇文章中,我們將一起學(xué)習(xí)如何使用 Node.js 創(chuàng)建一個簡單的 HTTP 服務(wù)器,并通過示例代碼幫你快速上手
    2025-02-02
  • 基于node.js express mvc輕量級框架實踐

    基于node.js express mvc輕量級框架實踐

    下面小編就為大家?guī)硪黄趎ode.js express mvc輕量級框架實踐。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 新入門node.js必須要知道的概念(必看篇)

    新入門node.js必須要知道的概念(必看篇)

    下面小編就為大家?guī)硪黄氯腴Tnode.js必須要知道的概念(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • json對象及數(shù)組鍵值的深度大小寫轉(zhuǎn)換問題詳解

    json對象及數(shù)組鍵值的深度大小寫轉(zhuǎn)換問題詳解

    這篇文章主要給大家介紹了關(guān)于json對象及數(shù)組鍵值的深度大小寫轉(zhuǎn)換問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • 十大 Node.js 的 Web 框架(快速提升工作效率)

    十大 Node.js 的 Web 框架(快速提升工作效率)

    Node.js 系統(tǒng)含有多種不同的結(jié)構(gòu),如 MVC、全棧、REST API 和生成器等。這些結(jié)構(gòu)不僅提升了 Web 應(yīng)用的開發(fā)效率,也優(yōu)化了開發(fā)過程。在這里,我們收集整理了十個高效的 Node.js 框架,希望對你有幫助。
    2017-06-06
  • Node.js中環(huán)境變量process.env的一些事詳解

    Node.js中環(huán)境變量process.env的一些事詳解

    這篇文章主要給大家介紹了關(guān)于Node.js中環(huán)境變量process.env的一些事,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用node.js具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10

最新評論

张家港市| 滦南县| 习水县| 高平市| 南和县| 威海市| 滦平县| 霍山县| 丹巴县| 长兴县| 哈巴河县| 新闻| 汕头市| 惠东县| 定兴县| 海盐县| 万荣县| 龙里县| 梅河口市| 霍城县| 抚顺县| 敦化市| 泰州市| 乐都县| 休宁县| 江山市| 井研县| 七台河市| 宁乡县| 龙州县| 北安市| 华宁县| 沙雅县| 大化| 丽水市| 肇州县| 津南区| 潜江市| 卢湾区| 沐川县| 十堰市|