9 什么是中间件
什么是中间件?
中间件就是在程序的输入到执行程序之间或执行程序结果到输出之间,即在输入层或输出层加入处理业务,从而在不影响原来核心功能的前提下,扩展出新的 功能。一般程序的执行方式是:输入->执行程序->输出,如:
const uidMapUser = {
1: { name: 'foo', age: 18 },
2: { name: 'bar', age: 20 }
}
/**
* 获取用户信息
*
*/
let getUserInfoByUid = (uid: number) => {
return uidMapUser[uid]
}
//这是获取用户信息的处理函数程序,给出一个uid的输入,则输出对应的用户信息
getUserInfoByUid(1) // return { name: 'foo', age: '18' }
随着功能的迭代,现在要添加一个输入前的验证功能和输出格式为json格式,修改代码是可以实现,但基于开闭原则(生产环境的代码封存不改动),就是能不能改动 原来的代码的前提下来实现这些功能。这是中间件的写法
let onlion = () => {
const p = 'hello'
console.log(p)
return p
}
const fn1 = (next) => {
console.log('fn1')
return next()
}
const fn2 = (next) => {
console.log('fn2')
return next()
}
const fns = [fn1, fn2]
fns.reverse().forEach(fn => {
onlion = fn.bind(null, onlion)
})
onlion()