中間件

常見的中間件有哪些

1.通常本地開發的話,小項目,或者是我的開發建議使用tomcat
2.linux系統建議使用jettyapache hpptd
3.大型的項目就用JBOSSwebloigcjavascript

4.大項目或者商業項目通常採用:weblgoic/webshere,其餘的還有jbossglasshfish
5.一些示例項目或者小項目常採用jettyhtml

6.tomcat , jboss, weblogic, websphere 通常項目tomcat就能夠了的運行平臺。java

什麼是javascript中間件呢?函數middle就是用來構建中間件的,我用例子說明下node

下面我定義了一個函數use,在use第一個參數傳入一個回調函數,以下linux

function use(func){git

    func("參數1","參數2")github

}web

 

//正常的傳入回調函數的用法。apache

var func=function(req,res){tomcat

 

    console.log(req)//=>參數1

    console.log(res)//=>參數2}

use(func)

 

 

//使用中間件構建,以下,middle函數在下面有定義,往下看var func=middle(function(req,res,next){

  console.log("這裏是新添加中間部分")

    console.log(req)//=>參數1

    console.log(res)//=>參數2

    next() ;//next指向下一個函數 

},function(req,res,next){

  console.log("這裏是新添加中間部分")

    console.log(req)//=>參數1

    console.log(res)//=>參數2

    next() ;//next指向下一個函數 

},function(req,res,next){

 //這是原始的函數

    console.log(req)//=>參數1

    console.log(res)//=>參數2 

})

use(func)

 

中間件的用法就這麼簡單,可是功能很強大,想一想你能夠在nodejs中監聽網頁連接的時候,能夠把用戶驗證、查找數據、顯示數據都分離出來,經過中間件組合成一個最終你想要的邏輯函數,想一想就以爲痛快。

中間件的源碼以下,代碼不多,你也能夠去github裏面下載源碼,https://github.com/caoke90/middle/blob/master/middle.js

 

var middle=function(){

    var next=function(func1,func2){

        return function(){

            var arg=Array.prototype.slice.call(arguments)

            var arr=[].concat(arg)

            arg.push(function(){

                if(typeof func2=="function"){

                    func2.apply(this,arr)

                }

            })

            return func1.apply(this,arg);

        }

    }

    var arg=Array.prototype.slice.call(arguments)

    var func=arg[arg.length-1]

    for(var i=arg.length-2;i>=0;i--){

        func=next(arg[i],func)

    }

    return func

}

相關文章
相關標籤/搜索