nestjs 项目 路由重定向到登录页面
时间: 2023-08-17 12:31:08 浏览: 82
如果你想在 NestJS 项目中实现路由重定向到登录页面,可以按照以下步骤进行操作:
1. 在你的控制器中,使用 `@Get()` 装饰器来定义一个路由,例如 `/home`。
2. 在该控制器的方法中,检查用户是否已经登录。如果用户未登录,使用 `@Res()` 装饰器来获取响应对象,并使用 `response.redirect()` 方法将用户重定向到登录页面。例如:
```typescript
@Get('/home')
public async getHomePage(@Req() request: Request, @Res() response: Response): Promise<any> {
if (!request.user) {
response.redirect('/login');
} else {
// 处理已登录用户的请求
}
}
```
上述代码中,如果用户未登录,则将其重定向到 `/login` 路由。
3. 在你的路由模块中,使用 `RedirectModule.forRoot()` 方法将 `/` 路由重定向到 `/home` 路由。例如:
```typescript
import { Module } from '@nestjs/common';
import { RedirectModule } from '@nestjs/plus';
import { AppController } from './app.controller';
@Module({
imports: [
RedirectModule.forRoot([
{
from: '/',
to: '/home',
statusCode: 301,
},
]),
],
controllers: [AppController],
})
export class AppModule {}
```
上述代码中,我们使用 `RedirectModule.forRoot()` 方法来重定向 `/` 路由到 `/home` 路由,并且指定了 `statusCode` 参数为 `301`,表示永久重定向。
这样,当用户访问根路由时,将会被重定向到 `/home` 路由,如果用户未登录,则会被重定向到登录页面。