Nest.Js 从一个控制器重定向到另一个

Ede*_*eph 7 javascript node.js express typescript nestjs

所以我有这个模块:

@Module({
  imports: [],
  controllers: [AppController, AnotherController],
  providers: [],
})
Run Code Online (Sandbox Code Playgroud)

而在AppController一些路线我想做的res.redirect('/books'),其中/books的一个路线中AnotherController

出于某种原因,这不起作用,我不知道它是否不受支持或我做错了。

Kim*_*ern 13

从一个控制器重定向到另一个控制器与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';
  }
}
Run Code Online (Sandbox Code Playgroud)

在此处查看此运行示例:

编辑重定向控制器

  • 显然,将“/books/:id”这样的另一条路线写成“@Get(':id')”会破坏它。 (2认同)