什么是javascript的中间件?
第一次写博客,有点想在博客园试水的感觉,也分享下觉得有用的东西(源码自己写的)
什么是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)
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
}
什么是javascript的中间件?的更多相关文章
- AJAX的前世今生与未来
一.通过三个问答来认识一下Ajax 什么是Ajax? Ajax是Asynchronous Javascript And XML的缩写,它是一种技术. Ajax有什么用? 这一技术能够向服务器请求额外的 ...
- 【趣事】用 JavaScript 对抗 DDOS 攻击
继续趣事分享. 上回聊到了大学里用一根网线发起攻击,今天接着往后讲. 不过这次讲的正好相反 -- 不是攻击,而是防御.一个奇葩防火墙的开发经历. 第二学期大家都带了电脑,于是可以用更高端的方法断网了. ...
- 从中间件的历史来看移动App开发的未来
在移动开发领域我们发现一个很奇怪的现象:普通菜鸟新手经过3个月的培训就可以拿到 8K 甚至上万的工作:在北京稍微有点工作经验的 iOS 开发,就要求 2 万一个月的工资.不知道大家是否想过:移动应用开 ...
- ASP.NET Core Loves JavaScript
前言 在 ASP.NET 团队的 Github 的主页上,有这样一个开源项目叫:"JavaScriptsServices",那么 什么是 JavaScriptsServices 呢 ...
- django 缓存、中间件、信号、CSRF 详解
中间件 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在django项 ...
- ASP.NET Core 1.1 静态文件、路由、自定义中间件、身份验证简介
概述 之前写过一篇关于<ASP.NET Core 1.0 静态文件.路由.自定义中间件.身份验证简介>的文章,主要介绍了ASP.NET Core中StaticFile.Middleware ...
- ASP.NET Core 1.0 静态文件、路由、自定义中间件、身份验证简介
概述 ASP.NET Core 1.0是ASP.NET的一个重要的重新设计. 例如,在ASP.NET Core中,使用Middleware编写请求管道. ASP.NET Core中间件对HttpCon ...
- WebLogic12.1.1中跨域问题的探讨以及几种常见中间件中跨域问题的解决方法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.问题描述 扬州现场中最开始安装了中间件WebLogic12.1.1 ...
- Techparty-广州Javascript技术专场(学习分享)
上周末(2016/07/31)去了一个技术沙龙学习前端相关的东西,下面是各个主题我印象比较深的. React + Redux 最佳实践 主题:本次分享,主要从React/Redux相关概念及其工具链, ...
随机推荐
- Process management of windows
igfxem.exe进程是正常的进程.是intel家的核显驱动类的进程.核显即"核芯显卡",是指GPU部分它是与CPU建立在同一内核芯片上,两者完全融合的芯片."核芯显卡 ...
- 智能IC卡与终端(读卡器)之间的传输协议
1.有两种协议 T=0,异步半双工字符传输协议 T=1,异步半双工块传输协议 终端一般都支持这两种协议,IC卡可以选择支持其中的一种.(因为终端可能需要面对各种类型的卡片,所以必须两种协议都支持,而卡 ...
- zend studio中安装Emmet插件后迅速编写html的方法
table>tr*3>th*1+td*3h1{hello} <h1>hello</h1>a[href="xx.xxx.xxx(网址) ...
- App测试从入门到精通之更新测试
我们都知道,app在使用一段时间,都会有更新,而且更新会不止一次.在实际测试中,关于更新的测试场景也是我们需要重点关注的,接下来我们就看一下关于App的更新测试有哪些测试点我们需要注意: APP更新测 ...
- Convert HTML to PDF with New Plugin
FROM:http://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Convert-HTML-to-PDF-with-N ...
- HttpUploader6.2-process版本
1.优化JS逻辑,在上传前先同步相同文件进度,提高多用户上传效率. 2.优化文件块保存逻辑,减少相同文件块的写入操作,减少服务器IO操作,提高上传效率. js变化: up6.js新增UrlQuer ...
- Machine Learning and Data Mining(机器学习与数据挖掘)
Problems[show] Classification Clustering Regression Anomaly detection Association rules Reinforcemen ...
- Windows Server 2003 asp网页不能访问的常见问题
1. [开始]--[程序]--[管理工具]--[Internet信息服务管理器],在服务器名下的“web服务扩展”的右窗口,单击active server pages -> 单击[允许].2. ...
- xmlreader与xmlwriter里的几个坑与解决方案
加载超过100M的xml文件时(可能不是很常见),XmlDocument这种全部加载到内存里的模式就有点不友好了,耗时长.内存高. 这时用xmlreader就会有自行车换超跑的感觉,但其间遇到几个坑, ...
- 九、Node.js中文乱码问题
解决方法: 1.确保我们的js文件保存格式是UTF-8.(可以通过记事本打开,然后另存为来查看目标js的编码格式) 2.在js文件中增加编码说明meta数据,让浏览器知道使用什么编码来解释网页. re ...