learn-next/src/app.controller.ts
2022-04-08 16:27:03 +08:00

111 lines
2.0 KiB
TypeScript

import {
Controller,
Get,
Header,
HttpCode,
Ip,
Logger,
Param,
Query,
Redirect,
Render,
Req,
} from '@nestjs/common';
import { AppService } from './app.service';
import { Request } from 'express';
import { ApiQuery, ApiResponse, ApiTags } from '@nestjs/swagger';
import { RealIP } from 'nestjs-real-ip';
@Controller()
@ApiTags('基本使用')
export class AppController {
// constructor(private readonly appService: AppService) {}
// @Get()
// getHello(): string {
// return this.appService.getHello();
// }
// 基础路由
@Get('/getip')
@ApiTags('获取访问者IP')
getIP(@RealIP() ip: string): string {
// npm i nestjs-real-ip
return ip;
}
@Get()
@Redirect('/api', 302)
hello() {
return '';
}
@Get('/r1')
@HttpCode(200)
getR1(): string {
return '基础路由';
}
@Get('/req1')
getReq1(@Req() request: Request, @Ip() ip) {
return {
iip: ip,
ip: request.ip,
headers: request.headers,
};
}
@Get('/header1')
@Header('Custom-Headers-A', '1')
getHeader1() {
return {
a: '自定义Header',
};
}
@Get('/redirect1')
@Redirect('https://www.baidu.com', 302)
getRedirect1() {
return '123';
}
@Get('/redirect2')
@Redirect('https://www.baidu.com', 302)
getRedirect2(@Query('version') version) {
if (version && version === '5') {
return { url: 'https://docs.nestjs.com/v5/' };
}
}
@Get('/router1/:id/:name')
router1(@Param() params) {
return params;
}
private readonly logger = new Logger(AppController.name);
@Get('/log1')
log1() {
this.logger.log('log');
this.logger.debug('debug');
this.logger.warn('warn');
this.logger.error('error');
this.logger.verbose('verbose');
return 'use log';
}
@ApiTags('模板使用')
@ApiResponse({
status: 201,
description: '成功',
})
@ApiResponse({ status: 403, description: '未授权' })
@Get('/temp1')
@Render('index')
temp1() {
return {
message: 'Hello,,Nest',
};
}
}