当前位置: 首页 > news >正文

nestjs引篇

nestjs

Nestjs 是一个用于构建高效、可扩展的 Node.js 服务器端的框架。它的底层以前端常见的两个服务端框架:express和 Fastify 为基础。(默认express 可以换成Fastify)

官方网站:nestjs

nestjs cli

nesrtjs 提供了强大的命令行工具,用于创建、生成、编译、运行 Nest.js 应用程序。

nestjs 概念

  • Controller --> 控制器 处理请求,返回响应
  • Service --> 服务层 数据访问,核心逻辑
  • Module --> 模块 组合所有逻辑代码,
  • Pipe --> 管道 预处理数据,转换数据,核验请求数据
  • Filter --> 过滤器 请求时的错误处理
  • Guard --> 守卫 鉴权和认证
  • Interceptor --> 拦截器 拦截请求和响应,加入特殊的逻辑
  • Repository --> 仓库 数据访问,也就是对数据库的操作

nestjs运行周期

客户端 -> 中间件 -> 守卫 -> 前置拦截器 -> 管道 -> 控制器 -> 服务 -> 后置拦截器 -> 过滤器 -> 响应 -> 客户端

生命周期钩子

  • onModuleInit():当宿主模块的依赖项已解析完成时调用。
  • onApplicationBootstrap():在所有模块初始化完成但尚未开始监听连接时调用。
  • onModuleDestroy():在接收到终止信号(例如 SIGTERM)后调用。
  • beforeApplicationShutdown():在所有 onModuleDestroy() 处理程序完成(Promise 已解决或拒绝)后调用;一旦完成(Promise 已解决或拒绝),所有现有连接将被关闭(调用了 app.close())。
  • onApplicationShutdown():在连接关闭后调用(app.close() 解析完成时)。

nest-cli

nest-cli 是 nestjs 的命令行工具,用于创建、编译、运行 nestjs 项目。

命令行工具

  1. nest new <项目名称> 创建项目,名称需要符合命名规范用短横线连接命名,符合npm包命名规则。
  2. nest g <生成类型> <生成名称> 创建文件,名称需要符合命名规范用短横线连接命名,符合npm包命名规则。
  3. nest --help 查看帮助,可以看到所有的nest-cli的相关命令,不妨在使用命令的时候查看一下帮助。

代码生成

命令说明示例
nest g controller <名称>生成控制器nest g controller users(创建 users 控制器)
nest g service <名称>生成服务nest g service users(创建 users 服务)
nest g module <名称>生成模块nest g module users(创建 users 模块)
nest g class <名称>生成类nest g class user.entity(创建用户实体类)
nest g interceptor <名称>生成拦截器nest g interceptor transform(创建转换拦截器)
nest g filter <名称>生成过滤器nest g filter http-exception(创建异常过滤器)
nest g guard <名称>生成守卫nest g guard auth(创建认证守卫)
nest g pipe <名称>生成管道nest g pipe validation(创建验证管道)
http://www.dtcms.com/a/545572.html

相关文章:

  • apmserv 设置网站目录yy头像在线制作网站
  • 基于YOLO+多模态大模型+人脸识别+视频检索的智慧公安综合研判平台(vue+flask+AI算法)
  • 二手车网站程序德阳网站建设 选哪家好
  • 极智算服务器用的还是自己的网络吗安全吗
  • Jenkins vs GitLab CI/CD vs Arbess,CI/CD工具一文纵评
  • 机器学习—— 回归分析之如何建立回归模型
  • MySQL中SUBSTRING_INDEX函数作用
  • 网站设计评级杭州网站搜索排名
  • 2.1 AI与大模型介绍
  • 厦门网站建设阿里流量型网站 cms
  • 【笔试真题】- 科大讯飞研发岗-2025.09.27
  • 20.15 多模态系统测试实战:跨模态对齐实现98%准确率的关键方案
  • GXDE 2025 Edition RC 开始测试
  • 网站设计标注图怎么做广东阳江发布最新消息
  • Java中使用Collator实现对象List按照中文姓名属性进行A-Z的排序实现
  • Oracle AWR 报告中的SQL来自哪儿?
  • 企业网站建设的作用创意设计之都
  • 蓝牙钥匙 第1次 蓝牙技术演进全景透视:从1.0到5.3,物联网时代的互联基石
  • Java、Python、C# 和 C++ 在函数定义语法上的主要区别
  • 安装网站程序报价单模板英文
  • mmcv的安装
  • OpenCV(十五):绘制矩形和圆
  • 网站建设基本流程视频关于动漫制作专业
  • 【React】节流会在react内失效??
  • ARM SMMU v3架构规范中文版
  • 北京58网站建设云南手工活外发加工网
  • 宁波本地模板网站建设平台百度论坛首页官网
  • 小模型是AI Agent的未来
  • Flink DataStream「上下文与状态处理」实战指南
  • MLP(Multilayer Perceptron,多层感知机)怎么解决异或问题