1和2不都是中间件么?

来源:6-2 中间件只在应用程序启动时初始化一次

三生三途

2019-05-15

图片描述
我感觉老师你的说法让我有点混乱,1中new了validator,2中也new了validator,
为什么1里new的validator就只有一个?难道说所有的router都调用的同一个1中间件?所以属性才挂载到同一个对象上?

可是照图中的写法来看的话,每个router都是调用的一个新的1中间件啊,都是自定义的,互不相干的把

写回答

1回答

7七月

2019-05-16

我们需要的是每个请求都实例化一个Validator。如果是写法1,那么所有请求都只有1个Validator,因为只有项目启动的时候才会执行一次new代码。

但是多个路由,每个都会实例化一个自己的Validator,但这不是我们想要的。我们想要的是每次请求都实例化一个Validator。


不知道这样说能理解吗?

1
2
或许是鱼跃
按照老师的说法,是不是图中 1的validater被包裹在一个匿名函数体内()=>{new RegisterValidator()},再将这个匿名函数放到图中1的位置当做一个中间件,就可以避免老师说的只实例化一次的bug,不知道我理解的对不对?希望老师能回复一下。
2022-03-11
共2条回复

Node.js+Koa2+MySQL打造前后端分离精品项目《旧岛》

理解异步编程本质/培养面向对象思维,独立完成Node.js服务端开发

2223 学习 · 878 问题

查看课程