常见的中间件有哪些
1.一般本地开发的话,小项目,或者是个人开发建议使用tomcat。
2.linux系统建议使用jetty或apache hpptd
3.大型的项目就用JBOSS或webloigc
4.大项目或者商业项目一般采用:weblgoic/webshere,其他的还有jboss、glasshfish等
5.一些示例项目或者小项目常采用jetty
6.tomcat , jboss, weblogic, websphere 一般项目tomcat就可以了的运行平台。
什么是javascript中间件呢?函数middle就是用来构建中间件的,我用例子说明下
下面我定义了一个函数use,在use第一个参数传入一个回调函数,如下
function use(func){
func("参数1","参数2")
}
//正常的传入回调函数的用法。
var func=function(req,res){
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
}