`
364434006
  • 浏览: 585723 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Node.js基础中间件Connect

 
阅读更多

Node.js提供了20多种内置中间件供我们使用:

  1. logger: 用户请求日志中间件
  2. csrf: 跨域请求伪造保护中间件
  3. compress: gzip压缩中间件
  4. basicAuth: basic认证中间件
  5. bodyParser: 请求内容解析中间件
  6. json: JSON解析中间件
  7. urlencoded: application/x-www-form-urlencode请求解析中间件
  8. multipart: multipart/form-data请求解析中间件
  9. timeout: 请求超时中间件
  10. cookieParser: cookie解析中间件
  11. session: 会话管理中间件
  12. cookieSession: 基于cookies的会话中间件
  13. methodOverride: HTTP伪造中间件
  14. reponseTime: 计算响应时间中间件
  15. staticCache: 缓存中间件
  16. static: 静态文件处理中间件
  17. directory: 目录列表中间件
  18. vhost: 虚拟二级域名映射中间件
  19. favicon: 网页图标中间件
  20. limit: 请求内容大小限制中间件
  21. query: URL解析中间件
  22. errorHadnler: 错误处理中间件

具体用法及其API请参考:

exampleapi

 

当然,我们也可以自己实现自定义中间件,其实中间件可以简单理解为一个回调事件函数。

 

var connect = require("connect");
var app = connect();

//注册自定义中间件(将中间件添加到队列中,等待执行)
app.use(access).use(test);

function access(req,res,next){
	var hour = new Date().getHours();
	if(hour < 9){
		res.writeHead(503,{"Content-Type":"text/plain;charset=utf-8"});
		res.end("禁止访问");
	}else{
		next();//转入下一个中间件处理
	}
}

function test(req,res,next){
	res.writeHead(200,{"Content-Type":"text/plain"});
	res.end("Hello World !!!");
}
app.listen(3000);

 这里定义了一个中间件,并将其注册到了中间件队列中(具体原理可以参考Node.js事件循环),中间件处理逻辑是禁止9点以前的访问。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics