博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解Node.js中间件以及Connect 模块
阅读量:4072 次
发布时间:2019-05-25

本文共 1304 字,大约阅读时间需要 4 分钟。

理解Node.js中间件以及Connect 模块

转载请注明: 转载自

本文链接地址: 

刚开始学习的时候,在app.js中发现app.use,当时比较困惑。

app.use(express.favicon());app.use(express.logger('dev'));app.use(express.bodyParser());app.use(express.methodOverride());app.use(app.router);app.use(express.static(path.join(__dirname, 'public')));

这里其实就是定义使用了中间件(Middleware)。Express框架实际上是依赖Connect创建的,这里的use方法是Conncet提供的,它用来注册一个中间件到Connect 中间件队列。

什么是中间件?
我的理解是这样的,中间件就是类似于一个过滤器的东西,在客户端和应用程序之间的一个处理请求和响应的的方法。
什么是Connect?
Connect 是Node.js中的一个模块,可以用来创建中间件的一个框架,它自身已经包装了Node的HTTP模块的Server以及Server的req和res的对象。它干的活其实就是处理请求,然后响应客户端或是让下一个中间件继续处理,它的原型是这个样子的

function (req, res, next) {  // 中间件}

当next回调函数被调用,中间件就完成工作并传递到下一个中间件,如果没其他中间件则进入到应用逻辑继续执行。

下面来写一个简单的脚本,自己注册2个中间件来理解下:

var connect = require('connect'),    http = require('http');var app = connect()    .use(access)    .use(test);function access(req,res,next){    var now = new Date().getHours();    if(now <13 || now >18){        res.writeHead(503,{'Content-Type':'text/plain'});        res.end('下午1点到6点之外禁止访问!');    }else{        next();    }}function test(req,res){    res.writeHead(200,{'Connect-Type':'text/plain'});    res.end('this is test page');}http.Server(app).listen(3000);

这这段代码中,我们注册了2个中间access和test到中间件队列中,这里需要注意的一点就是,Connect是流式处理。通过执行这段代码以后,浏览器访问以下体会吧!

参考:

Express API中提供的中间件 
Connect 中间件 

转载请注明: 转载自

本文链接地址: 

相关文章

你可能感兴趣的文章
postgresql减少wal日志生成量的方法
查看>>
linux下mysql 8.0忘记密码后重置密码
查看>>
swift中单例的创建及销毁
查看>>
获取App Store中App的ipa包
查看>>
iOS 关于pods-frameworks.sh:permission denied报错的解决
查看>>
设置RGBColor
查看>>
设置tabbaritem的title的颜色及按钮图片
查看>>
动态设置label的高度
查看>>
获取 一个文件 在沙盒Library/Caches/ 目录下的路径
查看>>
图片压缩
查看>>
检测缓存文件是否超时
查看>>
十进制字符串转十六进制字符串
查看>>
属性字符串(富文本)的使用
查看>>
cell上label的背景颜色在选中状态下改变的解决办法
查看>>
GPS定位
查看>>
地图、显示用户位置、大头针
查看>>
自定义大头针
查看>>
UIButton添加block点击事件
查看>>
利用runtime给类别添加属性
查看>>
本地推送
查看>>