首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用NestJs、GraphQL、TypeORM搭建后端服务

TypeGraphQL是基于GraphQL重写的TypeScript版本,GraphQL的全称是:Graph Query Langue 图形化查询语言,是一个可由调用端定义API返回数据结构语言。...@nestjs/graphql,这里我们直接使用@nestjs/graphql。...InputType:声明一个输入类型的Schema,当进行Mutation变异查询(提交数据)的时候,提交的数据格式必须要按照此结构提交,使用方式:InputType。.../dto目录下创建create-pokemon.dto.ts,内容为以下: import { Field, ObjectType} from 'type-graphql' @ObjectType()...结语 其实总体来说,整个NestJs应用的开发体验还是蛮好的,相关的生态也发展的比较成熟,本项目仅是对相关技术的一个整体尝试,实际在开发过程中遇到的还有很多别的问题,比如GraphQL的N+1查询问题,

6.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Nest.js 从零到壹系列(七):讨厌写文档,Swagger UI 了解一下?

    (即图中的 Schemas) 映射 DTO 点开 RegisterInfoDTO,发现里面是空的,接下来,我们配置一下参数信息,在 user.dto.ts 中引入 ApiProperty,然后添加到之前的.../user.dto'; import { ApiTags } from '@nestjs/swagger'; @ApiTags('user') // 添加 接口标签 装饰器 @Controller('.../user.dto'; import { ApiTags, ApiBearerAuth } from '@nestjs/swagger'; @ApiBearerAuth() // Swagger 的...示例参数 前面登录的时候,需要手动输入用户名、密码,那么有没有可能,事先写好,这样前端来看文档的时候,直接用默认账号登录就行了呢?.../user.dto'; import { ApiTags, ApiBearerAuth, ApiBody } from '@nestjs/swagger'; @ApiBearerAuth() @ApiTags

    4.7K10

    Nest.js 从零到壹系列(五):使用管道、DTO 验证入参,摆脱 if-else 的恐惧

    前两天发现 NestJS 更新到了 7.0.3(之前是 6.0.0),为了让教程更贴合实际,故果断升级。...根据定义,我们需要在代码中约定一下 DTO,还是以注册接口为例,先创建 user.dto.ts 简单定义一下: // src/logical/user export class RegisterInfoDTO...管道有两个类型: 转换:管道将输入数据转换为所需的数据输出; 验证:对输入数据进行验证,如果验证成功继续传递,验证失败则抛出异常; ValidationPipe 是 Nest.js 自带的三个开箱即用的管道之一...上面简单编写了一些常用的验证手段,class-validator 里面有非常多的验证方法,有兴趣的读者可以访问官方文档去学习:GitHub: class-validator[2] 接下来我们测试一下,先测试为空的情况...上图可以看到 accountName 的 @IsNotEmpty() 已经生效了 注意:class-validator 还提供了一个方法叫 @IsEmpty(),这是表示参数必须为空,不要搞混了。

    4.1K41

    Nest.js 实战系列四:使用管道、DTO 验证入参,摆脱 if-else 的恐惧

    前两天发现 NestJS 更新到了 7.0.3(之前是 6.0.0),为了让教程更贴合实际,故果断升级。...根据定义,我们需要在代码中约定一下 DTO,还是以注册接口为例,先创建 user.dto.ts 简单定义一下: // src/logical/user exportclass RegisterInfoDTO...管道有两个类型: 转换:管道将输入数据转换为所需的数据输出; 验证:对输入数据进行验证,如果验证成功继续传递,验证失败则抛出异常; ValidationPipe 是 Nest.js 自带的三个开箱即用的管道之一...上面简单编写了一些常用的验证手段,class-validator 里面有非常多的验证方法,有兴趣的读者可以访问官方文档去学习:GitHub: class-validator[2] 接下来我们测试一下,先测试为空的情况...上图可以看到 accountName 的 @IsNotEmpty() 已经生效了 注意:class-validator 还提供了一个方法叫 @IsEmpty(),这是表示参数必须为空,不要搞混了。

    4K20

    React18+TS+NestJS+GraphQL 全栈开发在线教育平台无密分享

    React 18 + TypeScript + NestJS + GraphQL:全栈开发在线教育平台的探索随着在线教育行业的蓬勃发展,构建一个高效、稳定、用户友好的在线教育平台变得至关重要。...React 18、TypeScript、NestJS 和 GraphQL 作为现代全栈开发中的佼佼者,为开发者提供了强大的工具集来构建这样的平台。...四、GraphQL:数据查询的革新者GraphQL 是一种强大的数据查询和操作语言,它允许客户端精确地指定所需的数据,从而避免了传统 REST API 中的过度获取和冗余数据问题。...在在线教育平台中,GraphQL 可以帮助开发者更加灵活地查询和更新用户数据、课程数据等,提高数据处理的效率和准确性。...综上所述,React 18、TypeScript、NestJS 和 GraphQL 的结合为全栈开发在线教育平台提供了强大的技术支撑。

    22311

    React18+TS+NestJS+GraphQL 全栈开发在线教育平台无密分享

    React18+TS+NestJS+GraphQL 全栈开发在线教育平台:技术引领教育新纪元随着数字化时代的飞速发展,教育行业也迎来了前所未有的变革。...为了满足用户对于高效、便捷、个性化的学习需求,我们采用React18、TypeScript(TS)、NestJS和GraphQL这一前沿技术栈,全栈开发了一款在线教育平台。...GraphQL作为数据查询的革新者,其精确的数据请求和响应能力,使得在线教育平台能够根据用户需求精确地获取所需数据,极大地提高了数据处理的效率和准确性。...通过GraphQL,我们实现了前后端数据的无缝对接,为用户提供了更加流畅、高效的学习体验。...在React18、TypeScript、NestJS和GraphQL的共同作用下,我们成功打造了一款功能丰富、性能卓越、稳定可靠的在线教育平台。

    22110

    【Nest教程】数据验证class-validator

    全局验证通道 对比前面的教程,可以看出这个问文件,只添加两行代码,一行是导入ValidationPipe ,另一行是开启一个全局验证通道 import { NestFactory } from '@nestjs.../core'; import { ValidationPipe } from '@nestjs/common'; import { AppModule } from '....//开启一个全局验证管道 await app.listen(3000); } bootstrap(); 3 使用class-validator 为了项目统一管理,我们在之前的User模块下,新建Dto...文件夹,这里面放置我们的文件,新建一个用户查询的Dto,文件内容如下: import { IsNotEmpty, Length } from 'class-validator'; export class...QueryUserDto { @IsNotEmpty({ message: '用户名不为空' }) @Length(10, 20, { message: 'name的长度不能小于10不能大于20

    2.1K1311

    Nest.js 实战 (四):利用 Pipe 管道实现数据验证和转换

    以下是 Nest.js 中管道的一些主要用途:数据转换:管道如 ParseIntPipe、ParseFloatPipe、ParseArrayPipe 等可以将原始输入数据转换为应用内部所需的类型,如将字符串转换为整数或浮点数...例如,使用 ValidationPipe 结合 class-validator,可以自动验证请求体或查询参数是否满足特定的 DTO(数据传输对象)定义,从而预防因数据格式错误引起的运行时异常错误处理:如果数据不符合管道的规则...type: Number, description: '排序', default: 1, }) @IsNumber( {}, { message: '排序必须为数字...from '@nestjs/common';import { ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger'; // swagger.../dto/response-post.dto';import { PostManageService } from '.

    20710

    Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档

    /dto/params-post.dto';import { ResponsePostDto } from '..../dto/response-post.dto';import { PostManageService } from '....PostManageController {constructor(private readonly postManageService: PostManageService) { }/** * @description: 查询岗位列表...,用于组织 Swagger UI 文档@ApiOperation为控制器方法添加操作描述,包括摘要和详细描述@ApiParam描述路径参数、请求参数或响应参数,包括名称、类型、描述等@ApiBody指定请求体的...为 DTO 类型的属性添加元数据,如描述、默认值等@ApiQuery描述查询参数,包括名称、类型、描述等@ApiHeader描述请求头信息,包括名称、类型、描述等@ApiExcludeEndpoint标记一个控制器方法不在

    35911
    领券