2023年最新 Nestjs 面试题

admin
0 评论
/ /
2279 阅读
/
2364 字
20 2023-02
  • 什么是 NestJS?它有什么优点和特点?

    Nest.js是用于构建高效且可伸缩的服务端应用程序的渐进式 Node.js 框架,

    优点:

    • 完美的支持typescript,因此可以使用日益繁荣的ts生态工具
    • 兼容 express 中间件,因为express是最早出现的轻量级的node server端框架,nest.js能够利用所有express的中间件,使其生态完善
    • 层层处理,一定程度上可以约束代码,比如何时使用中间件、何时需要使用guards守卫等
    • 依赖注入以及模块化的思想,提供了完整的mvc的链路,使得代码结构清晰,便于维护
  • 什么是依赖注入(DI)?在 NestJS 中如何使用 DI?

    依赖注入是一种控制反转IOC(inversion of control)技术,就是你可以把对象或依赖的实例化交给IOC容器去处理,在NestJS中这个容器就是NestJS的运行时系统。当需要一个对象实例的时候,我们不需要自己手动new xxxClass(),只需要在合适的地方对类进行注册,在需要用到的地方直接注入,容器将为我们完成new的动作,这为我们省了很多事。最突出的应用场景就是单例模式的运用,很多我们要用到的方法服务都会封装在一个类中,比如与数据库打交道的各个Service类,调用这些服务方法都需要通过服务类实例进行调用。

    Nestjs当中的Module就是IOC的体现。

    • providers 依赖的service
    • imports 依赖别的模块的service
    • export 想要暴露的自身的service
    • controllers 模块路由
  • 如何在 NestJS 中创建控制器(controller)和服务(service)?

  • 如何在 NestJS 中实现中间件(middleware)?

  • 什么是管道(pipe)?如何在 NestJS 中实现管道?

  • 如何在 NestJS 中使用拦截器(interceptor)?

  • 如何在 NestJS 中进行数据验证(data validation)?

  • 如何在 NestJS 中实现身份验证(authentication)和授权(authorization)?

  • 如何在 NestJS 中处理异常(exception)和错误(error)?

  • 如何在 NestJS 中使用 WebSocket?

  • 如何在 NestJS 中使用 GraphQL?

  • 如何在 NestJS 中进行测试(testing)?

  • 什么是 NestJS 中的模块(module)?如何在 NestJS 中创建和使用模块?

  • 如何在 NestJS 中使用 TypeORM 进行数据库操作?

  • 如何在 NestJS 中使用 Mongoose 进行 MongoDB 数据库操作?

  • 如何在 NestJS 中使用 Swagger 自动生成 API 文档?

  • 如何在 NestJS 中使用 gRPC 实现微服务通信?

  • 如何在 NestJS 中实现缓存(cache)功能?

  • 如何在 NestJS 中进行日志记录(logging)?

  • 如何在 NestJS 中使用微服务(microservices)进行分布式系统开发?

  • 什么是 NestJS 中的全局拦截器(global interceptor)?如何在 NestJS 中使用全局拦截器?

  • 如何在 NestJS 中使用 Passport 实现多种身份验证策略?

  • 如何在 NestJS 中使用 JWT 进行身份验证?

  • 如何在 NestJS 中使用 ACL 进行授权管理?

  • 如何在 NestJS 中使用 WebSockets 进行实时通信?

  • 如何在 NestJS 中使用 Redis 实现高性能缓存?

  • 如何在 NestJS 中实现异步任务(asynchronous task)?

  • 如何在 NestJS 中使用 AWS Lambda 进行无服务器开发?

  • 如何在 NestJS 中使用 Docker 进行容器化部署?

  • 如何在 NestJS 中使用 Kubernetes 进行容器编排和部署?

  • 什么是 NestJS 中的异步模块(async module)?如何使用异步模块?

    暂无数据