demo:
import { Controller, Get } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get('a')
findAll(): string {
return 'This action returns all cats';
}
}
当请求 /cats/a
框架是如何通过装饰器定位到 findAll()
这个方法的呢?他的原理是什么?
demo:
import { Controller, Get } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get('a')
findAll(): string {
return 'This action returns all cats';
}
}
当请求 /cats/a
框架是如何通过装饰器定位到 findAll()
这个方法的呢?他的原理是什么?
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答4.1k 阅读
@Controller
这个东西在JS中叫装饰器,关于它的语法你可以去搜搜看,原理上跟函数差不太多,也就是在CatsController
之上额外多加了一些逻辑,这些逻辑你不需要写在这个class
里,好奇怎么实现的最佳路径是直接看源码,装饰器作用看下文档然后再去找源码部分就能大概理解了,其实就是通过这么一层包装把cats
、a
这样的路径记下来有点上面这样的味道,源码并非这样,只是大概描述下逻辑概念,总之就是把路径记到
controller
上,之后再取出来匹配