在nestjs中是否可以为同一个ROUTE指定多个处理程序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在nestjs中是否可以为同一个ROUTE指定多个处理程序?相关的知识,希望对你有一定的参考价值。
是否可以为同一ROUTE指定多个处理程序?
对/ test路由的任何HTTP GET请求都应调用get处理程序,除非查询字符串watch ==='1',在这种情况下,它应改为调用监视处理程序。
import { Controller, Get } from '@nestjs/common';
@Controller('test')
export class TestController {
@Get()
get(){
return 'get'
}
@Get('?watch=1')
watch(){
return 'get with watch param'
}
}
由于该框架似乎不支持此功能,所以我希望能够编写一个装饰器来抽象该逻辑。
即
import { Controller, Get } from '@nestjs/common';
import { Watch } from './watch.decorator';
@Controller('test')
export class TestController {
@Get()
get(){
return 'get'
}
@Watch()
watch(){
return 'get with watch param'
}
}
可以这样做吗?谁能指出我正确的方向?
关于,戴维德
答案
@Controller('test')
export class TestController {
myService: MyService = new MyService();
@Get()
get(@Query('watch') watch: number){
if(watch) {
return myService.doSomethingB(watch);
} else {
return myService.doSomethingA();
}
}
}
export class MyService {
doSomethingA(): string {
return 'Do not watch me.'
}
doSomethingB(watch: number): string {
return 'Watch me for ' + watch + ' seconds.'
}
}
以上是关于在nestjs中是否可以为同一个ROUTE指定多个处理程序?的主要内容,如果未能解决你的问题,请参考以下文章