nestJS中的控制器,路由,Get,Post方法参数装饰器

nestJS中的控制器
  • nestJS中的控制器负责处理传入的请求,并返回对客户端的响应

  • 创建控制器:nest g controller news

    • 运行后会在src目录下创建新的文件夹,其中包含控制器文件和服务文件,而且同时更新的app.module.ts
    //控制器文件
    import { Controller, Get} from '@nestjs/common';
    @Controller('news')
    export class NewsController {
    
       //http://localhost:3000/news
       
       @Get()		 //get装饰器后面可以配置对应路由,Get()如果为空,则默认匹配news,如果Get('add')则匹配news/add
       index(){ 		//使用方法需要匹配路由,匹配路由需要给index方法加一个装饰器
       	return "你好,我是新页面"
       }
    }
    
  • 控制器文件 中@Controller('news')news参数为访问路径后的参数,如将上面代码中的@Controller('news')修改为@Controller('aaaa')则访问路径变为http://localhost:3000/aaaa
    装饰器中的方法名字可以随意写

NestJS中的路由
  • nestjs中没有单独配置路由的地方,定义好控制器后nestjs会自动配置对应的路由
  • @Controller('news')装饰器中的参数决定路由,news就是路由
  • 在nestjs中获取Get传值或者post提交的数据可以使用nestjs中的装饰器来获取
方法参数装饰器:

方法参数装饰器同样需要在import { Controller, Get, Query} from '@nestjs/common';中引入

1. @Request() -------Get |req
//Get方式接收参数
	@Get('edit')
	edit(@Request() req){
		console.log(req.query)
		return req.query
	}
2.@Response() |res
3.@Next() |next
4.@Session() |req.session
5.@Param(key?: string) |req.params / req.params[key]
//获取动态路由参数
@Get(":id")
	dong(@Param() param){
		console.log(param)
		return param
	}
6.@Body(key?: string)-----Post |req.body / req.body[key]
//Post方式接收参数
	@Post('create')
	create(@Body() body){
		console.log(body)
		return body
	}
7.@Query(key?: string)-----Get |req.query /req.query[key]
//Get方式接收参数
	@Get('add')
	add(@Query() query){
		console.log(query)
		return query
	}
8.@Headers(name?: string) |req.headers / req.headers[name]
NestJS也提供了其他HTTP请求方法的装饰器:

@Put(), @Delete(), @Patch(), @Options(), @Head(), @All()

模糊匹配
@Get('a*a')
index(){
	//localhost:3000/user/aba
	return "模糊匹配路由"
}

nestjs中的装饰器
装饰器的作用就是可以扩展类,方法,属性,方法参数的功能
  • 类装饰器
  • 方法装饰器
  • 属性装饰器
  • 方法参数装饰器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值