跳到主要内容

nestjs

一些概念

  • BE
    • 路由
    • 中间件
    • 数据库
    • API Gateway。客户端与后端微服务之间的中间层。 负责将来自客户端的请求路由到适当的微服务,并在需要时进行身份验证、鉴权、日志记录、缓存等处理。可以作为一个入口点,集中处理多个微服务的请求,从而简化客户端与微服务之间的交互。它还可以提供 API 版本管理、负载均衡、限流等功能。
  • 装饰器(Decorator)是 TypeScript 提供的一种元编程语法,允许我们在定义类、方法、访问器、属性或参数时添加元数据。
  • Module(模块):模块是一个装饰过的类,它接受一个元数据对象,该对象描述了模块将组织和封装哪些部分的应用程序。模块可以导入其他模块,以便在应用程序的其他部分使用其公开的提供者。因此,你可以把模块看作是一个由 Controllers、Providers、Services 等组成的功能区块。
  • Controller(控制器):控制器基本上负责处理传入的 HTTP 请求,并返回客户端的响应。在 Nestjs 中,控制器是一个带有 @Controller() 装饰器的类,通常与一组服务配合使用,以提供 Web 界面的 API。
  • Service(服务):服务通常封装业务逻辑和数据访问。它们用 @Injectable() 注解修饰,可以被注入到控制器中,供其使用。服务通常被注入到控制器中,方便控制器调用。

一些原理

  • 依赖注入。Nestjs 在启动应用时,会创建一个依赖注入的容器,自动实例化被 @Injectable() 装饰的类,并解析类构造函数的参数,根据参数类型自动注入对应的实例。

一些问题

  1. nestjs 的 module、controller、service 有什么联系?
  2. express、koa、nestjs有什么区别?