所以我有这个模块:
@Module({
imports: [],
controllers: [AppController, AnotherController],
providers: [],
})
在AppController
中的某条路线上我想做res.redirect('/books')
,其中/books
是在AnotherController
中找到的一条路线。
由于某种原因,这不起作用,我不知道是否不支持它,或者我做错了。
答案 0 :(得分:1)
使用res.redirect(target)
从一个控制器重定向到另一个控制器。作为目标,您必须结合控制器的路径和路径注释:
@Controller('books')
+ @Get('greet')
= /books/greet
@Controller()
export class AppController {
@Get()
redirect(@Res() res) {
return res.redirect('/books/greet');
}
}
@Controller('books')
export class AnotherController {
@Get('greet')
greet() {
return 'hello';
}
}
在此处查看此运行示例:
答案 1 :(得分:0)
另一种方法是使用@Redirect() 装饰器,如此处所述: https://docs.nestjs.com/controllers#redirection
这也应该有效:
@Controller()
export class AppController {
@Get()
@Redirect('books')
redirect(){}
}
@Controller('books')
export class AnotherController {
@Get()
getBooks() {
return 'books';
}
}