成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

路由的后端配置

ashe / 624人閱讀

摘要:前幾天寫了路由的前端設(shè)置,也是的必要條件,既然前端路由設(shè)置好了,那么后端勢必也要有路由系統(tǒng)相配套。這里不涉及排查重復路由,當然添加上去也是很簡單的。接下來要做的就是前端路由和后端路由相配合。

前幾天寫了路由的前端設(shè)置,也是spa的必要條件,既然前端路由設(shè)置好了,那么后端勢必也要有路由系統(tǒng)相配套。這里以nodejs為例,簡單的路由實現(xiàn),參考了一些網(wǎng)上的文章以及express等開源庫,是很簡單的路由實現(xiàn)。
這里不涉及排查重復路由,當然添加上去也是很簡單的。
先是index.js的代碼:

var server=require("./server");

var app = server.router();

app.set("/demo",function () {
  return "demo";
})

app.set("/test",function () {
  return "test";
})

app.start()

從上面大概可以看到router的api了,只有兩個api,一個是set,一個是start,set負責設(shè)置路由,start負責啟動服務(wù)器。
然后是server.js:

var http = require("http");
var url = require("url");
var router = function () {
  function App () {
    this.path={};
  }
  App.prototype = {
    set : function (route,handler) {
      this.path[route]=handler;
    },
    start: function () {
      var path = this.path
      function handleRequest (req,res) {
        if( typeof path[req.url] === "function" ){
          var content = path[req.url]();
        }else {
          var content = "404 Not Found";
        }
        var pathname = url.parse(req.url).pathname;
        console.log("request for " + pathname +"recevied");
        res.write(content);
        res.end();
      }
      http.createServer(handleRequest).listen(3000,()=>{console.log("port 3000");})
    }
  };

  return new App();
}

exports.router = router;

如上,可以看到引入了url和http模塊,url負責解析pathname,http負責創(chuàng)建服務(wù)器,最后返回App的實例,this.path里存儲著已經(jīng)在設(shè)置好的路由及其回調(diào)函數(shù),這邊僅僅是簡單的返回一個值,具體還要更改。至于start里的handleRequest就是具體返回內(nèi)容了,具體可以看http的相關(guān)api。就這簡單的代碼就是一個初級的路由模塊。

當然還有更多的功能可以實現(xiàn)。比如渲染模板,類似flask的render_template

代碼如下:

var fs = require("fs");
var path = require("path");

function renderTemplate (file) {
  var html = fs.readFileSync(path.dirname()+"/templates/"+file).toString();
  return html;
}

module.exports=renderTemplate

都是很簡單的實現(xiàn)。雖然沒有具體看express的渲染部分,不過我估計也是差不多的。

app.set("/demo",function () {
    return renderTemplate("index.html")
})

我這里是先放在templates的文件夾里,模仿flask。大概如此。
接下來要做的就是前端路由和后端路由相配合。構(gòu)成spa的雛形。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/79226.html

相關(guān)文章

  • adapter與serializer使用示例一

    摘要:由于能力有限本示例不會完全自定義適配器和序列化器,示例仍然是使用官方推薦方式,重寫或者擴展以實現(xiàn)自定適配器和序列化器。在序列化器中調(diào)用響應(yīng)請求的方法格式化返回的數(shù)據(jù)。上述就是的一個簡單實用示例。 文章來源:http://xcoding.tech/tags/Emberjs歡迎訪問源網(wǎng)站Ember Teach,Ember Teach致力于為您提供最權(quán)威、最前沿的Ember技術(shù)教程。。 ad...

    Near_Li 評論0 收藏0
  • 基于容器后端服務(wù)架構(gòu)

    摘要:結(jié)構(gòu)大致為安裝如果檢測到多個會報錯,可以用指定一個指定啟動因為需要調(diào)用,所以需要把映射到容器內(nèi)部,如果你使用了,那么需要設(shè)置對應(yīng)的。我這里是啟動服務(wù),這里需要注意的是這些環(huán)境變量,作用是的默認值,見名知意,在文檔中有詳細介紹。 基于容器的后端服務(wù)架構(gòu) 在探索kubernetes的應(yīng)用時,調(diào)研了幾個gateway,發(fā)現(xiàn)fabio支持發(fā)現(xiàn)服務(wù),自動生成路由,結(jié)合consul,registr...

    nifhlheimr 評論0 收藏0
  • 細說 Vue 組件的服務(wù)器端渲染

    摘要:所以,這次就來聊聊組件的服務(wù)器端渲染。這種模式下,后端只提供接口,傳統(tǒng)的服務(wù)器端路由模板渲染則都有層接管。這樣,前端開發(fā)人員可以自由的決定哪些組件需要在服務(wù)器端渲染,哪些組件可以放在客戶端渲染,前后端完全解耦,但又保留了服務(wù)器端渲染的功能。 細說 Vue 組件的服務(wù)器端渲染 聲明:需要讀者對 NodeJs、Vue 服務(wù)器端渲染有一定的了解 現(xiàn)在,前后端分離與客戶端渲染已經(jīng)成為前端開發(fā)的...

    reclay 評論0 收藏0
  • 使用keepalived全面實現(xiàn)高可用

    為什么要用Keepalived來實現(xiàn)負載均衡器高可用,這里只拿HaProxy負載均衡器來進行說明:對于所有懂運維的小伙伴來說,都應(yīng)該知道,無論后端的服務(wù)器都強大,這里的后端服務(wù)器說的是真正提供服務(wù)的主機,負載均衡器后面有緩存服務(wù)器,緩存服務(wù)器后面才是真正提供服務(wù)的服務(wù)器。而這個服務(wù)器小編稱它為"后端服務(wù)器",而在這后端服務(wù)器后面是我們的數(shù)據(jù)緩存服務(wù)器,之后是數(shù)據(jù)庫,也是整個企業(yè)的命脈。這整個架構(gòu)是...

    BingqiChen 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<