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中的装饰器
装饰器的作用就是可以扩展类,方法,属性,方法参数的功能
- 类装饰器
- 方法装饰器
- 属性装饰器
- 方法参数装饰器