1.通常本地開發的話,小項目,或者是我的開發建議使用tomcat。
2.linux系統建議使用jetty或apache hpptd
3.大型的項目就用JBOSS或webloigcjavascript
4.大項目或者商業項目通常採用:weblgoic/webshere,其餘的還有jboss、glasshfish等
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
}