nestJS中的控制器负责处理传入的请求,并返回对客户端的响应
创建控制器:nest g controller news
//控制器文件
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
装饰器中的方法名字可以随意写
@Controller('news')
装饰器中的参数决定路由,news就是路由方法参数装饰器同样需要在import { Controller, Get, Query} from '@nestjs/common';
中引入
//Get方式接收参数
@Get('edit')
edit(@Request() req){
console.log(req.query)
return req.query
}
//获取动态路由参数
@Get(":id")
dong(@Param() param){
console.log(param)
return param
}
//Post方式接收参数
@Post('create')
create(@Body() body){
console.log(body)
return body
}
//Get方式接收参数
@Get('add')
add(@Query() query){
console.log(query)
return query
}
@Put(), @Delete(), @Patch(), @Options(), @Head(), @All()
@Get('a*a')
index(){
//localhost:3000/user/aba
return "模糊匹配路由"
}
装饰器的作用就是可以扩展类,方法,属性,方法参数的功能