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', }; } }