18_管道——转换

简介: 18_管道——转换

Nest.js提供了一组管道API用以转换前端带来的请求参数,这些API也可以用来限制前端传来的参数类型。一共有以下几种:

  • ValidationPipe
  • ParseIntPipe(转换成int类型)
  • ParseFloatPipe(转换成Float类型)
  • ParseBoolPipe
  • ParseArrayPipe
  • ParseUUIDPipe(转换成UUID类型)
  • ParseEnumPipe
  • DefaultValuePipe

接下来我们通过一个简单的案例实践一下

import { Controller, Get, Param, ParseIntPipe, ParseUUIDPipe } from '@nestjs/common';
import { PService } from './p.service';
import * as uuid from 'uuid'
@Controller('p')
export class PController {
  constructor(private readonly pService: PService) {}
  @Get(':id')
  // 装饰器的第一个参数为匹配的动态路由,第二个参数为要使用的管道API
  create(@Param('id', ParseIntPipe) id) {
    console.log(typeof id);   // number
    return true;
  }
  @Get('/edit/:uuid')
  edit(@Param('uuid',ParseUUIDPipe) id){
    console.log(typeof id)    // string
    return true
  }
}

对于第一个请求,当我们访问localhost:3000/p/123时,nest.js会将前端传来的123(string类型)转化成number类型的123

对于第二个请求,当我们访问localhost:3000p/edit/123时浏览器会返回错误信息(异常捕捉器返回的),提示请求的参数不是UUID类型。当我们把请求URL改为localhost:3000p/edit/f82bfffb-ebeb-4eab-9e25-d198fddd4cc5时请求才会成功

目录
相关文章
|
6月前
|
数据处理 C++
C++程序字符串流
C++程序字符串流
38 2
|
6月前
|
存储 数据格式 Python
使用二进制方式向文件读写一组数据
使用二进制方式向文件读写一组数据
53 0
|
6月前
|
中间件 数据格式
中间件数据格式文本与二进制之间的转换
中间件数据格式文本与二进制之间的转换
41 2
|
6月前
|
存储 C语言 数据格式
用二进制方式向文件读写一组数据
用二进制方式向文件读写一组数据
53 1
|
6月前
模式间转换
模式间转换。
22 1
|
6月前
|
存储 C++
62字符串流
62字符串流
37 0
|
6月前
|
Linux Shell
使用输入输出重定向与管道命令——管道
使用输入输出重定向与管道命令——管道。
50 0
|
Unix 数据处理 Python
怎么还蹦出来个 “ 数据管道 ”
怎么还蹦出来个 “ 数据管道 ”
|
存储 iOS开发 C++
C++之I/0流操作(标准流、文件流、二进制操作等)
C++之I/0流操作(标准流、文件流、二进制操作等)
163 0
线程间的协作(3)——管道输入/输出流
参考资料《Java并发编程的艺术》《Java编程思想》《Java核心技术卷一》
1094 0