中间件常见的问题

什么是中间件?

中间件就是request请求到response响应之间封装出来的函数,且能够是通用的,例如一些复杂的逻辑代码以及判断验证。每个中间件它都有独自的功能,当有某个功能出现异常时,只需要维护当前出现异常的中间件即可,从而达到了更好的维护代码

中间件的运用场景是什么,存在的意义,主要是为了解决什么用途?怎么用?

运用场景:

主要用来解决一些复杂的逻辑代码和一些登录或者注册校验

存在意义:

为了让代码能够更好的被维护

用途:

可以修改request请求对象的值,也可以修改response响应对象的值

可以在请求之后到响应前做一些判断验证

可以直接终止请求,也可以通过next方法继续执行下去

怎么用:

例如:登录校验

//加载express模块
const express = require('express');
//创建express实例
const app = express();
var mysql = require('mysql'); 

//连接数据库参数配置
var connection = mysql.createConnection({
    host    :"localhost", //主机
    port    :'3306',	//端口
    user    :"root",	//用户名
    password:"123456",	//密码
    database:"test"		//数据库
});
//连接mysql
connection.connect(function(err){
    if(err){
        throw err;
    }
    console.log('connect mysql success');
});


app.use(function(req,res,next){
    //此处进行数据库的查询
    connection.query(,function(err,rows,fields{
        if(err){
            throw err;
        }
        //判断验证
    });
//查得到的话就直接进行下个中间件(next),查不到则执行res.send()直接结束当前请求	
   next(); //代表执行下一个中间件
})


//定义路由(路由函数也是中间件)
app.get('/index',function(req,res){
  console.log('后经过我');
  res.send('hello world');
});

app.listen(3000,function(){
  console.log('请访问 : 127.0.0.1:3000');
});

什么是解耦?

解耦实际就是在request到resopnse中,将一个大的功能拆分成若干个小的功能,解耦和mvc比较类似,都是通过通过一层一层进行拆分,使得代码维护性高

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值