Nestjs学习总结
发布网友
发布时间:2024-10-05 08:27
我来回答
共1个回答
热心网友
时间:2024-11-05 04:05
NestJS是一个用于构建高效、可扩展的Node.js服务器端应用程序的开发框架。它支持JavaScript的渐进增强能力,并全面支持TypeScript,同时兼容面向对象编程、函数式编程和函数响应式编程。
基于NestJS构建项目的流程如下:
使用命令行工具创建项目:`nest new project-name`
NestJS中的核心文件概览如下:
1. `main.ts`:包含一个异步函数,用于启动应用程序。
2. `express`和`fastify`:NestJS支持的两个开箱即用的HTTP平台。
控制器在NestJS中负责处理传入的请求,并向客户端返回响应。每个控制器通常包含多个路由,用于执行不同的操作。
创建控制器的常用命令为:`nest -h`。例如,通过命令`nest g controller posts`创建`posts`控制器。
NestJS支持的HTTP请求方法装饰器包括:`@Get()`, `@Post()`, `@Put()`, `@Delete()`, `@Patch()`, `@Options()`和`@Head()`。
NestJS服务可以是`service`或`provider`,通过`@Injectable()`装饰器注解的类。服务相当于MVC模式中的`Model`。
创建服务的步骤包括定义服务类和引入服务至`app.mole.ts`文件。
模块通过`@Mole()`装饰器定义,每个Nest应用至少包含一个根模块,可以有多个模块来组织相关功能。
共享模块通过在`exports`数组中包含服务实例实现。
使用`nest g res posts`命令可以一键创建所有相关的模块。
配置静态资源时,创建`views`目录,并在其中定义模板文件。
配置模板引擎可使用`views`目录下的`default`文件夹,并通过`Render`装饰器渲染模板。
NestJS支持使用`cookie`和`session`进行状态管理,分别用于存储用户信息和会话信息。
使用`express-session`库配置`session`。
跨域、前缀路径和网络安全配置在`app.mole.ts`中进行。
管道、守卫、*、过滤器和中间件在`main.ts`中全局使用,以统一执行。
管道包括:`@UseGuards()`, `@UseInterceptors()`, `@UsePipes()`等。
使用`@nestjs/common`包中的内置管道,并自定义管道、守卫和过滤器。
创建中间件通过`@UseMiddleware()`装饰器,可以实现功能如XML转换、权限控制等。
数据验证使用`@nestjs/class-validator`库,配合`DTO`实现。
配置数据库和环境变量使用`.env`文件,通过`dotenv`库加载。
实现文件上传和下载,配置文件目录和格式。
构建图片随机验证码使用`svg-captcha`库,并封装以供多次调用。
邮件服务可参考官方文档进行集成。
NestJS基于`passport`和`jwt`实现登录验证,配置策略和本地策略,使用守卫进行权限控制。
以上内容涵盖了NestJS框架的多个核心功能和技术集成,通过合理组织和配置,可以构建高效、可扩展的Node.js服务器端应用。