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

时间:2019-05-31 15:26:49

标签: javascript node.js typescript express nestjs

所以我有这个模块:

@Module({
  imports: [],
  controllers: [AppController, AnotherController],
  providers: [],
})

AppController中的某条路线上我想做res.redirect('/books'),其中/books是在AnotherController中找到的一条路线。

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

2 个答案:

答案 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';
  }
}

在此处查看此运行示例:

Edit Redirect-Controller

答案 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';
  }
}