111 lines
2.0 KiB
TypeScript
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',
|
|
};
|
|
}
|
|
}
|