nestjs如何在post接口中转换Boolean类型参数?

1.post表单提交格式是x-www-form-urlencoded,参数到了服务端都转成了字符串格式。在dto中使用@Type(() => Boolean),boolean类型传过来true或false都被当成了字符串处理,Boolean()转换出来的都是true。

2.现有的插件是class-transformer和nest内置的ParseBoolPipe。
但是ParseBoolPipe看了下demo,都是参数比较少的情况。如果是有数十个字段的大表单,就非常不方便。

现在好像只能在dto中使用class-transformer手写@Type 和@Transform来实现。有没有简单方便一点的方案?

阅读 1.7k
1 个回答
新手上路,请多包涵

关闭隐式转换 enableImplicitConversion

import {  ValidationPipe } from '@nestjs/common'
import { NestFactory } from '@nestjs/core'
import { AppModule } from './app.module'

const app = await NestFactory.create(AppModule)

app.useGlobalPipes(
  new ValidationPipe({
    transformOptions: { enableImplicitConversion: false },
  })
)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题