关于装饰器的疑问
来源:9-4 [第 2 次迭代] 结合 Decorator 对 koa-router 进行抽象封装支持路由空间分离

开天辟地
2018-02-12
老师,您好,看了这章有点小疑问,百思不得其解,controller那个装饰器,为啥symbolPrefix属性要放在原型上,为什么要添加在原型上,而切从头到尾都没看到movieController的实例化,只有Route类的实例化,难道Route实例化后,movieController也会跟着实例化么,为啥就可以用了
写回答
2回答
-
symbolPrefix 只是一个路径的前缀,可以看做是以它为分隔的路径命名空间,它的作用,就是为了拼接出来 koa-router 所需要第一个匹配路由方法的路径: routerPath = prefixPath + conf.path
不需要实例化,能让 koa-router 认识这个 routerPath 就行了,这个 movieController 所在的文件被 require 进来的时候,也就是 target 的原型上就配置了作为命名空间的路径,而在接下来的执行中,movieController 里面的每一个方法,被作为路由中间件执行的时候,都会去拼接完整的路径地址。
032018-02-13 -
godghdai
2018-02-12
controller装饰器传入的target为Constructor,
controller里面方法的装饰器传入的target为Constructor.prototype,
只有放在Constructor.prototype上的属性,在方法的装饰器上才能访问
00
相似问题