NestJS 中的 Controller

使用装饰器 Controller

import { Get, Controller } from '@nestjs/common';
import { AppService } from './app.service';
import { UserService } from './services';
@Controller()
export class AppController {
  constructor(private readonly appService: AppService,
                    private userService:UserService) {}

  @Get()
  index():string{
    return this.appService.root();
  }

  @Get("getUserInfo")
  @Render("user/user_info")
  async getUserInfo(@Param() param): string {
    return await this.userService.getUserInfo(param.uid);
  }

  @Post()
 async addUser(@Body() dto:UserInfo,@Res res){
    const ret = await this.userService.addUser(dto);
    const data = {
      msg:"添加用户成功",
      code:200
    };
    return data;
  }
}
  1. @Controller() 可以带参数表达的是路由访问的模块前缀,如设置为:@Controller("admin") ,其路由访问路径为:localhost:3000/admin
  2. 路由请求处理方式,如:@Post,@Req, @Res, @Get,若设置参数为:@Get("getUserInfo") ,则路由访问路径为:localhost:3000/admin/getUserInfo
  3. 在控制器里面还可以渲染对应的页面模板,如:@Render("user/user_info"),渲染 user 目录下的 user_info.hbs 文件。注意:渲染的具体模板文件不能使用形如:user.info.hbs 这种使用.(dot) 命名。

2018.9.30 深圳 天之骄子

你可能感兴趣的:(NestJS 中的 Controller)