首页
学习
活动
专区
圈层
工具
发布

使用 NestJS 开发 Node.js 应用

设计之初,主要用来解决开发 Node.js 应用时的架构问题,灵感来源于 Angular。在本文中,我将粗略介绍 NestJS 中的一些亮点。 组件容器 ?...NestJS 采用组件容器的方式,每个组件与其他组件解耦,当一个组件依赖于另一组件时,需要指定节点的依赖关系才能使用: import { Module } from '@nestjs/common';...例如使用 Filters,来捕获处理应用中抛出的错误: @Catch() export class AllExceptionsFilter implements ExceptionFilter {...ContentDto // 使用 ) { return this.testService.find() } } 复制代码 当所传入参数 text 不是 string 时,会出现 400 的错误...GraphQL GraphQL 由 facebook 开发,被认为是革命性的 API 工具,因为它可以让客户端在请求中指定希望得到的数据,而不像传统的 REST 那样只能在后端预定义。

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

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

    TypeGraphQL是基于GraphQL重写的TypeScript版本,GraphQL的全称是:Graph Query Langue 图形化查询语言,是一个可由调用端定义API返回数据结构语言。...在我们过去常用的RestFul API中,我们可能在不同的业务中需要调用同一个接口,但是各自所需的数据有不同的情况下,服务端为了同时满足两个需求则提供了更多的字段,这样导致了一个两个业务请求到的数据都包含了自己不需要的字段...GraphQL则是解决了这个问题,它可以让各个业务都可以通过一个接口拿到自己刚刚好的数据,而不用返回一个多余的字段。...现在保存文件,我们将会得到一个错误,因为TypeORM生成数据库表的时候至少需要一个实体Entity文件。...@nestjs/graphql,这里我们直接使用@nestjs/graphql。

    7.3K10

    Nest 实现 GraphQL 版 TodoList

    比如 GET 请求 /students 查询所有学生,/students/1 查询 id 为 1 的学生 发送 POST、PUT、DETETE 请求分别代表增删改。...npm install -g @nestjs/cli nest new graphql-todolist 创建个项目,然后我们首先来实现 restful 接口的增删改查。...接下来实现 graphql 版本: 安装用到的包: npm i @nestjs/graphql @nestjs/apollo @apollo/server graphql 然后在 AppModule...具体增删改查的实现和之前一样。 浏览器访问 http://localhost:3000/graphql 就是 playground,可以在这里查询: 左边输入查询语法,右边是执行后返回的结果。...,现在后端服务里开启下跨域支持: 可以看到,返回了查询结果: 然后加一下新增: 用 useMutation 的 hook,指定 refetchQueries 也就是修改完之后重新获取数据。

    45610

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

    React18+TS+NestJS+GraphQL 全栈开发在线教育平台:技术引领教育新纪元随着数字化时代的飞速发展,教育行业也迎来了前所未有的变革。...为了满足用户对于高效、便捷、个性化的学习需求,我们采用React18、TypeScript(TS)、NestJS和GraphQL这一前沿技术栈,全栈开发了一款在线教育平台。...在在线教育平台开发中,TypeScript的引入不仅提高了代码的可读性和可维护性,还极大地减少了因类型错误导致的运行时错误,为平台的稳定性提供了有力保障。...GraphQL作为数据查询的革新者,其精确的数据请求和响应能力,使得在线教育平台能够根据用户需求精确地获取所需数据,极大地提高了数据处理的效率和准确性。...在React18、TypeScript、NestJS和GraphQL的共同作用下,我们成功打造了一款功能丰富、性能卓越、稳定可靠的在线教育平台。

    37010

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

    React 18 + TypeScript + NestJS + GraphQL:全栈开发在线教育平台的探索随着在线教育行业的蓬勃发展,构建一个高效、稳定、用户友好的在线教育平台变得至关重要。...React 18、TypeScript、NestJS 和 GraphQL 作为现代全栈开发中的佼佼者,为开发者提供了强大的工具集来构建这样的平台。...在在线教育平台开发中,TypeScript 的引入可以极大地减少因类型错误导致的运行时错误,提高代码的健壮性和可维护性。...此外,TypeScript 的强大类型系统也方便了开发者在开发过程中进行代码自动补全和错误检查。...综上所述,React 18、TypeScript、NestJS 和 GraphQL 的结合为全栈开发在线教育平台提供了强大的技术支撑。

    43811

    前端开发使用GraphQL——NestjsGraphQL项目搭建

    选型决定了使用Nestjs来开发GraphQL应用,查了一下资料发现网上typescript搭建GraphQL的教程非常的少。...自己踩了不少坑搭建的服务已经上线了,这里记录下我使用Nestjs搭建GraphQL应用的过程,首先是Nestjs项目的搭建。 1....一、传递cookie,header, url参数 目前我使用GraphQL操作数据的service实际上都是调用的后台的接口,后台的接口是需要验证用户的登录态,请求的来源(IOS还是安卓,APP...这就需要把用户发起的请求的cookie和header, url参数等内容透传给后台。目前Nestjs的GraphQL模块还没法直接注入这些请求的信息。我们需要写一个service服务来提供这些内容。...carbon (10).png 四、小结 目前基本解决了GraphQL聚合后台请求需要解决的问题,相关代码提交到了我的github上,有兴趣的小伙伴可以去拉取代码自己运行一编。

    2K50

    使用NestJS框架实现微信的自动回复消息功能

    微信是一个拥有超过10亿用户的社交平台,它提供了丰富的开放接口,让开发者可以在微信上实现各种功能和服务。其中之一就是自动回复消息,它可以让公众号或小程序根据用户发送的消息内容,自动返回相应的回复。...创建一个控制器(Controller),处理微信服务器发送过来的GET和POST请求。 验证签名,并返回echostr参数(GET请求)。...NestJS框架支持多种常用技术栈,如TypeScript、GraphQL、MongoDB等,让你可以根据需求选择合适的工具。...// 如果解析过程出现错误,则抛出异常并拒绝 promise。...这个方法是向微信服务器发送文本消息,并返回一个回复的 xml 格式的数据。

    3.9K40

    优雅,太优雅了!Nest.js 实在是太优雅了!

    前言 在 Node.js 生态里,如果你厌倦了 Express 的无结构混乱,又觉得 Koa 太轻量缺乏规范,那么 NestJS 或许正是你想要的答案。...:Nest 提供 CLI 工具、GraphQL 支持、WebSocket、Microservices 模块等,满足各种场景 架构设计 NestJS 默认采用 MVC 架构,这一设计让 Nest 非常适合做企业级的微服务架构...现在可以请求到数据了! 请求用户列表 JWT 登录鉴权流程,中间件的使用 JWT(JSON Web Token)是实现用户登录态管理的主流方式之一。...现在请求接口,会得到 401 401 验证失败 这一整套流程非常契合企业级开发对安全性和规范性的要求。 最后 NestJS 的魅力在于让 Node.js 项目拥有可维护、可测试、可扩展的架构基础。...如果你正在寻找一个可以在中大型项目中放心使用的 Node.js 框架,NestJS 是一个值得尝试的选择!

    41300

    分享10个NodeJS相关的专业级工具

    Koa原生支持async/await语法,使开发人员能够编写更易于理解和维护的异步代码。 简化的错误处理和请求/响应操控。...Koa提供了简单而灵活的方式来处理错误,并允许开发人员对请求和响应进行定制和操控。 高扩展性,允许添加自定义功能和集成。...出色的路由和请求处理能力。Express.js提供了灵活而强大的路由系统,使开发人员能够轻松处理不同的路由和请求,并实现自定义的请求处理逻辑。 简化的错误处理和异常处理方法。...Express.js提供了一种简化的方式来处理错误和异常,开发人员可以轻松地捕获和处理错误,提供友好的错误提示和响应。 灵活的路由系统。...WunderGraph自动处理缓存和请求去重,减少重复请求的发送,并提供了高效的数据获取和处理机制。 与现有的REST、GraphQL和gRPC API的无缝集成。

    1.9K20

    NestJS 入门到实战 前端必学服务端新趋势无密分享

    NestJS作为一个高效、可扩展的Node.js框架,逐渐成为了前端开发者服务端学习的热门选择。本文将带领读者从NestJS的入门开始,逐步深入到实战应用,并探讨其在服务端领域的新趋势。...学习NestJS,首先需要掌握Node.js和TypeScript的基础知识。安装Nest CLI工具后,通过简单的命令即可创建一个新的NestJS项目。...二、NestJS实战应用在实际项目中,NestJS可以帮助我们构建高效、模块化的后端服务。通过模块化的设计,我们可以将不同的业务逻辑拆分成独立的模块,降低代码的耦合度,提高可维护性。...同时,NestJS支持多种API实现方式,如Express和GraphQL,使得我们可以根据业务需求选择最适合的API框架。...NestJS作为一个现代化的Node.js框架,正逐渐成为服务端开发的新趋势。首先,NestJS的模块化设计使得我们可以更加轻松地组织代码,实现松耦合、高内聚的服务架构。

    46210

    Node.js服务端开发教程 (六):依赖注入补漏篇

    最近在写前面两篇关于依赖注入的文章时,我总是在想用一句怎么的话来简单而朴素的描述依赖注入的概念,让从来没接触过的朋友能比较形象的去理解。...其实在前两篇文章中,关于NestJS依赖注入功能相关的内容已经介绍的差不多了,如果你掌握了的话,已可以顺利的用于实际的开发工作。...= await getProductServiceConfig() // 根据远程返回的数据作进一步实例化 if (configInfo.category) {...,这就会发生错误。...NestJS提供了3种范围: 单例(SINGLETON)- 应用一启动就被实例化,只有一个对象实例,在整个应用程序范围内被共享 请求(REQUEST)- 针对于每个请求生成一个实例,请求处理结束后销毁

    1.6K20

    NestJS 7.x 折腾记: (6) 异常过滤器,取其精华去其糟粕!比如响应异常数据的包装~

    NestJS提供了一波拿来即用的内置异常过滤器; 在@nestjs/common里面,搜索下Exception就有~ 我们来一个具体的例子(全局异常过滤), 基于内置的异常过滤器实现,采用第三方日志(pino...'; // 捕获请求异常类型 // 可以传递多个参数,所以你可以通过逗号分隔来为多个类型的异常设置过滤器。...http的上下文 // 有兴趣可以点进去,GPRC,WEBSOCKET都能直接转换 // 也能直接拿到一些参数的及返回上下文类型 const ctx = host.switchToHttp...(); // 判断状态是否为请求异常,否则直接抛回来服务内部错误 const status = exception instanceof HttpException..., JSON.stringify(errorResponse), 'HttpExceptionFilter', ); // 塞回去响应体,也就是客户端请求可以感知到的

    1.3K20

    BFF与Nestjs实战

    Controller,字面意思是控制器,负责处理客户端传入的请求和服务端返回的响应,官方定义是一个由@Controller()修饰的类,上述代码就是一个Controller,当我们发起地址为'/api/...user'的get请求的时候,Controller就会定位到findAll的方法,这个方法的返回值就是前端接收到的数据。...Middleware 中间件 Nestjs是对Express的二次封装,Nestjs中的中间件等价于Express中的中间件,最常用的场景就是全局的日志、跨域、错误处理、cookie格式化等较为常见的...const status = exception.getStatus(); const msg = exception.message; // 这里对res的处理就是全局错误请求返回的格式...Nestjs小总结 经过上文的一系列步骤,我们已经搭建了一个小应用(没有日志和数据源),那么问题来了,前端发起请求后我们实现的应用内部是如何一步步处理并且响应数据的?

    3K10
    领券