博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6.2 中间件-middleware
阅读量:7294 次
发布时间:2019-06-30

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

中间件-middleware

一、概念:中间件其实就是一个函数。如果中间件通过了对请求的检测和处理, 必须要执行 `next()` 函数。

  如:  app.get('/request',function(req,res,next){},function(req,res){});

    在这个路由中间的这个function(req,res,next){}函数就是中间件。

  中间件就像学校看门大爷一样,社会人要进去学校打球,行,提供证明,证明通过进去,不通过404.

二、中间件分类:

  (1)全局中间件:针对所有路由有效,所有路由都要经过这个中间件处理

app.use(function(req, res, next){})

 

  (2)路由中间件:只针对当前这个路由有效,对当前这个路由规则进行处理

app.get('/arc/1', function(req, res, next){      / res.redirect('/login');      next();    }, function(req, res){      res.send('ok');    });

 

三、全局中间件实例

let express=require('express');let app=express();let fs=require('fs');let url=require('url');var date=new Date();app.use(express.static('public'));//全局中间件app.use(function(req,res,next){  var u=req.url;  fs.appendFileSync('./logs', u + date + '\r\n');  next();});app.get('/login',function(req,res){  res.end('login');});app.listen(80);

 

四、路由中间件实例

(1)登记功能    记录请求路径

let express=require('express');let app=express();let fs=require('fs');app.use(express.static('public'));app.get('/request',function(req,res,next){
  // 登记功能 记录请求路径 var u=req.url; fs.appendFileSync('./log',u+'\n\r'); next();},function(req,res){ res.end('ok');});app.listen(80);

 

(2)演示进入后台设置页面

  /setting?admin=1 管理员

      /setting 非管理员

let express=require('express');let app=express();let url=require('url');app.use(express.static('public'));app.get('/setting', function(req, res, next){    //获取请求中的  admin 参数    var admin = url.parse(req.url, true).query.admin;    //如果是管理员    if(admin){        next()    }else{        //跳转        res.redirect('/login')    }    }, function(req, res){    res.end('setting page');});

  app.get('/login',function(req,res){

    res.end('login');
  });

app.listen(80);

 

 

 

转载于:https://www.cnblogs.com/xzsz/p/9506215.html

你可能感兴趣的文章
HTTP Request Method共计15种
查看>>
StringBuffer类append的用法总结
查看>>
【GO】go 模块化开发
查看>>
禁用SSL v2.0、SSL v3.0协议
查看>>
Deeplearning原文作者Hinton代码注解
查看>>
Vim 配置
查看>>
软件测试杂谈
查看>>
第四周课下作业
查看>>
1062. 最简分数(20)
查看>>
【JS】Intermediate3:AJAX
查看>>
iOS边练边学--plist文件,懒加载,模型初使用--补充instancetype
查看>>
PHP5 的五种常用模式
查看>>
oracle查询不显示小数点前的0
查看>>
伯努利错装信封问题
查看>>
vue轮播图
查看>>
基于C#的BarCode 39实现
查看>>
JAVA程序设计 实验一
查看>>
Linux命令之远程登录与执行远程主机命令
查看>>
如何规划、建设你的数据库架构
查看>>
两个单选按钮(一个是,一个否 ),一个div层,实现点击隐藏,显示div
查看>>