什么是中间件?
中间件就是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比较类似,都是通过通过一层一层进行拆分,使得代码维护性高