了解Nest.js

news2025/1/8 5:59:16

一直做前端开发,都会有成为全栈工程师的想法,而 Nest 就是一个很好的途径,它是 Node 最流行的企业级开发框架,提供了 IOC、AOP、微服务等架构特性。接下来就让我们一起来学习Nest.js

Nest.js官网地址

一,了解Nest Cli

项目开发离不开工程化的部分,比如创建项目、编译构建、开发时 watch 文件变动自动构建等。Nest 项目自然也是这样,所以它在 @nestjs/cli 这个包里提供了 nest 命令

我们可以直接 npx 执行,npm 会把它下载下来然后执行:

npx @nestjs/cli new 项目名

也可以安装到全局,然后执行,更推荐这种:

npm install -g @nestjs/cli

nest new 项目名

不过后者要时不时升级下版本,不然可能用它创建的项目版本不是最新的

npm update -g @nestjs/cli

 查看nest 提供的啥命令:

nest -h

有创建新项目的 nest new,有生成某些代码的 nest generate,还有编译构建的 nest build,开发模式的 nest start 等。

接下来就让我们来分别看一下:

1,nest new

nest new 是我们用来创建一个新的项目的,在创建项目的时候,我们有如下几个选项:

  • --skip-git 和 --skip-install 可以让我们创建项目的时候跳过git初始化和npm install 
  • --package-manager 是指定包管理器的,之前创建项目的时候会让我们选择包管理器,指定之后就跳过了选择包管理器这一步骤了
  • --language 可以指定 typescript 和 javascript,一般我们都选择 ts
  • --strict 是指定 ts 的编译选项是否开启严格模式的,也就是这么 5 个选项,也可以在创建完项目之后去改

2,nest generate

nest 命令除了可以生成整个项目外,还可以生成一些别的代码,比如 controller、service、module 等。

比如生成 module:

nest generate module aaa

它会生成 module 的代码:

还会自动在 AppModule 里引入:

nest generate可以生成 controller、service 等代码:

nest generate controller aaa

同样,它也会更新到 module 的依赖里去。

生成 service 也是一样:

如果是要完整生成一个模块的代码,不需要一个个生成,可以用:

nest generate resource xxx

它会让你选择是哪种代码,因为 nest 支持 http、websocket、graphql、tcp 等,这里我们选择 http 的 REST 风格 api:

然后会让你选择是否生成 CRUD 代码:

选择是。

然后就会生成整个模块的 CRUD + REST api 的代码:

这就是 nest generate,可以快速生成各种代码:

这些代码模版的集合是在 @nestjs/schematics 这个包里定义的。

nest new 创建项目的时候有个 --collection 选项,就是配置这个的。

不过一般我们不需要配置

3,nest build

nest build 了,它是用来构建项目的。

执行 nest build,会在 dist 目录下生成编译后的代码。

4,nest start

执行nest start 项目会重新 build 了,并且用 node 把 main.js 跑了起来。

它有这些选项:

  • --watch 是最常用的选项了,也就是改动文件之后自动重新 build
  • --debug 是启动调试的 websocket 服务,用来 debug。
  • --exec 可以指定用什么来跑,默认是用 node 跑,你也可以切换别的 runtime等等

5,nest info

最后还有个 nest info 命令,这个就是查看项目信息的,包括系统信息、 node、npm 和依赖版本:

结语:这些就是nest.js的一些基础知识,下一章让我们一起了解一下常见的HTTP数据传输方式吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1837099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python安装失败,报0x80070643-安装时发生严重错误。

背景 之前安装了3.12.4,因为没用到,就用Revo Uninstaller Pro卸载了,连注册表都清理了。后面看到别人写的一个工具不符合预期,想对源码修改下,用到了Python,于是重新安装,出现上面报错。 解决方法尝试 因…

JS 实现树形结构的各种操作(2)

一 数据源 以下所有操作,都使用本数据做测试。 const oraData [{id: "1",name: "动物",children: [{id: "1-1",name: "哺乳类",children: [{id: "1-1-1",name: "小猫",children: []},{id: "1-1…

c++参考std::string自己设计类hstring

目录 一、前言 二、设计需求 三、设计思想 1.功能一 1.功能二 四、设计过程 1.类hstring搭建 2. 实现有参构造函数 3. 实现副本构造函数 4.完整代码 五、结束语 一、前言 在c中有很多的库,但是在有些时候呢,我们一定要学会自己去设计库&#…

游戏服务器研究一:bigworld 开源代码的编译与运行

1. 前言 bigworld 已经开源了它的代码,而我对于大世界的 scale 很感兴趣,所以就尝试把代码跑起来研究。但是,整个过程比我原先预想的复杂得多。 虽然能找到一些官方的帮助文档,但这些文档要么过旧,要么过于详尽&…

SpringBoot + Maven 项目的创建

文章目录 1、Maven2、SpringBoot3、二者之间的联系4、项目的创建 在创建项目之前,肯定要知道他们之间的区别 1、Maven maven是一个跨平台的项目管理工具。它是Apache的一个开源项目,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。 比如说…

贪吃蛇游戏代码(C语言项目)

本篇仅提供C语言代码,详细讲解在这篇博客:C语言:贪吃蛇游戏(从0开始完整版)-CSDN博客 1、运行演示 QQ2024618-155655 2、代码构成(vs编译器) 3、C语言代码 3.1 头文件Snake.h #pragma once #i…

存储文件夹下所有.cpp和.h的代码到对应的txt文件里

最近大半年刷了160多天的题,每次刷的时候都要新建一个VS文件,所以文件内存太大了,又舍不得删,就用ai整了一个脚本,可将当前路径下的所有文件里的.cpp和.h文件储存到相应名字的txt文件里,若文件夹下还有文件…

概率论拾遗

条件期望的性质 1.看成f(Y)即可 条件期望仅限于形式化公式,用于解决多个随机变量存在时的期望问题求解,即 E(?)E(E(?|Y))#直接应用此公式条件住一个随机变量,进行接下来的计算即可 定义随机变量之间的距离为,即均方距离 随机…

k8s集群新增计算节点使用华为iscsi存储创建的pvc存储挂载报错:FailedMount

背景: 因公司业务需求的增长,导致kubernetes集群测试环境的计算节点资源不够使用了,这时候就申请了几台服务器加入到kubernetes集群中,因为维护的kubernetes集群的对接华为了iscsi存储,通过storageclass组件来创建pvc存…

LangChain入门学习笔记(四)—— Model I/O之LLMs

Prompts输入大模型应用后,下一个重要的处理组件就是LLM或者Chat Model,在这里大模型根据提示语产生相应内容,本章主要介绍LLM。 LangChain不定义自己的LLMs,但是它提供标准接口。由其他的LLM提供商(比如OpenAI、Coher…

服务器数据恢复—NTFS文件系统下双循环riad5数据恢复案例

服务器存储数据恢复环境: EMC CX4-480存储,该存储中有10块硬盘,其中有3块磁盘为掉线磁盘,另外7块磁盘组成一组RAID5磁盘阵列。运维人员在处理掉线磁盘时只添加新的硬盘做rebuild,并没有将掉线的硬盘拔掉,所…

CleanMyMac X for Mac系统优化垃圾清理软件卸载 工具(小白轻松上手,简单易学)

Mac分享吧 文章目录 效果一、准备工作二、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2、启动台显示软件图标,表示安装成功 三、运行测试1、打开软件,配置2、授权,允许完全磁盘访问 安装完成&a…

CCAA质量管理【学习笔记】​​ 备考知识点笔记(六)质量改进系统方法与工具

第七节 质量改进系统方法与工具 1 质 量 改 进 方 法 概 述 可以说几乎每种质量管理领域的方法与工具都可以用于质量改进,但是一个组织在改进的整体推进中,往往不是采用单一的方法,会涉及多种改进的工具和手段,并依据一定的模式…

原来设计师都在这些网站找素材、灵感的

设计师可以去哪些网站找设计素材和灵感,收藏好这几个网站,设计必备,提升审美的好帮手。 设计素材网站 1、菜鸟图库 菜鸟图库-免费设计素材下载 菜鸟图库一个可以免费下载设计素材的网站,我推荐过很多次,主要是站内素材…

职业教育app开发,因为热爱,所以不断向前

从学校毕业后,面对愈来愈严重的职场内卷,人们不仅没有对学习产生丝毫懈怠,反而越来越注重职业教育。随着科技与经济的不断发展,线上职业教育app应运而生,以其快捷、高效的特点被越来越多人所选择。 一. 职…

【QT教程】使用qcustomplot完成对图像的拖动、框选缩放、自动缩放、游标等操作

目录 1.Qt 配置qcustomplot2.图像拖拽功能3.图像框选放大4.曲线自动缩放5.图像游标6.【完整代码】将曲线抽象成一个类,以便复用 1.Qt 配置qcustomplot 首先下载qcustomplot官网(qcustomplot下载地址)下载最近的源码,我用的是2.1.…

在执行sudo apt update时提示“sudo:aapt:找不到命令”

文章目录 1、问题引入2、问题解决区别 1、问题引入 在干净的虚拟机环境发现执行不了“sudo apt update”命令 2、问题解决 我们知道linux有许多的系统,例如CentOS、Ubuntu等,而apt和yum都是linux的包管理工具,可以安装、升级和删除软件。那…

经纬恒润EAS.HSM:驱动硬件信息安全

概述 HSM(Hardware Security Module)硬件安全模块,是一种用于保护和管理强认证系统所使用的密钥,并同时提供相关密码学操作的计算机硬件设备。 HSM 在汽车信息安全中扮演着至关重要的角色。随着汽车智能化和网联化的快速发展&am…

航空电子设备 MIL-STD-1553 收发器 HI-1573 / HI-1574

Holt集成电路通过真正的单芯片双3.3V收发器继续支持MIL-STD-1553数据总线。新型HI-1573采用成熟的设计技术和最新的模拟CMOS技术,当以100%占空比进行传输时,仅消耗340mW的功率,同时仍可为总线提供所需的功率。通过将RXENA或RXENB设…

想体验“时光倒流”吗?文件时光机——可道云teamOS,历史版本管理,随时回溯版本

大家在工作中,遇到过的最奔溃的事情是什么? 是工作没有做好,还是客户要求太离谱? 不知道大家有没有过这样的经历,根据客户要求改方案、改稿子,改了一版又一版,结果客户说还是最初版本更好………