了解Nest.js

一直做前端开发,都会有成为全栈工程师的想法,而 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.mzph.cn/pingmian/29641.shtml

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

相关文章

充电学习—6、电量计FuelGauge

电量计功能: 检测电池 计量电量 电量计首要工作: 计算电池的剩余容量、充满时容量、电量百分比 电量百分比 剩余容量 / 充满时容量 * 100% SOC RM / FCC * 100% 典型的一个电池包框架: 包含电芯、电量计IC、保护IC、充放电MOSFET、保险丝…

【做一道算一道】零钱兑换

零钱兑换 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无…

栈帧浅析,堆栈漏洞概述——【太原理工大学软件安全期末补充】

在上一篇文章中我说实验一不重要,确实没必要完全按照实验内容逐字逐句理解,但是这里我们补充一个知识点 栈帧(Stack Frame)是计算机程序执行过程中,调用栈(Call Stack)中的一个单元,…

hugging face:大模型时代的github介绍

1. Hugging Face是什么: Hugging Face大模型时代的“github”,很多人有个这样的认知,但是我觉得不完全准确,他们相似的地方在于资源丰富,github有各种各样的软件代码和示例,但是它不是系统的,没…

Linux-DNS域名解析服务01

BIND 域名服务基础 1、DNS(Domain Name System)系统的作用及类型 整个 Internet 大家庭中连接了数以亿计的服务器、个人主机,其中大部分的网站、邮件等服务器都使用了域名形式的地址,如 www.google.com、mail.163.com 等。很显然…

探索C嘎嘎的奇妙世界:第十四关---STL(string的模拟实现)

1. string类的模拟实现 1.1 经典的string类问题 上一关已经对string类进行了简单的介绍,大家只要能够正常使用即可。在面试中,面试官总喜欢让学生自己来模拟实现string类,最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数…

MacOS - command not found: brew

问题描述 command not found: brew 原因分析 没有安装 Homebrew,安装后即可使用~ 解决方案 打开终端,输入:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)",点击回车 在弹出…

make V=1 分析

文章目录 make V11. 加载 -include 声明的文件 make V1 1. 加载 -include 声明的文件 # 顶层 Makefile 270 KCONFIG_CONFIG ? .config ...... 580 -include include/config/auto.conf 584 -include include/config/auto.conf.cmd ...... 587 $(KCONFIG_CONFIG) include/confi…

小程序的登录+发布流程

今天我们来将一下小程序的登录和发布流程!!! 小程序的登录流程 流程图 首先登录流程还是看官网说的:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 这是官网发布的一个流程图 认识cod…

2 图片的分割处理和亚像素精度处理(c++和python)

本文的图片处理分为图片分割、图像的亚像素坐标处理。亚像素处理的原理可以看论文一种基于多项式插值改进的亚像素细分算法,该论文的详解及c的代码实现可以看博文基于多项式插值的亚像素边缘定位算法_基于多项式插值的亚像素算法-CSDN博客。下面的内容很多来自以上博…

【论文阅读】-- 时间空间化:用于深度分类器训练的可扩展且可靠的时间旅行可视化

Temporality Spatialization: A Scalable and Faithful Time-Travelling Visualization for Deep Classifier Training 摘要1 引言2 动机3 问题定义4 方法论4.1 时空复合体4.2 复数约简 5 实验6 相关工作7 结论参考文献 摘要 时间旅行可视化回答了深度分类器的预测是如何在训练…

mysql常用参数配置详解my.cnf my.ini

1.关注生产中高频常用参数 # 数据库时区 log_timestamps = system # 刷盘策略 0,1,2 innodb_flush_log_at_trx_commit # 定义了 InnoDB 用于写日志数据的缓冲区大小。当事务发生时,日志首先被写入这个缓冲区,然后再被刷新(flush)到磁盘上的重做日志文件(redo log file…

MATLAB画图时添加标注显示有效数字的位数,可以编辑此函数

本来系统有个函数,在图像窗口选择标注工具,再在图像窗口右击鼠标,选择"编辑文本更新函数...",即打开系统的设置函数,可以修改最后一行: formattedValue [valueFormat num2str(value,4) removeV…

6.18总结

省赛排位赛2&#xff1a; 省赛排名赛2 - Virtual Judge 思路&#xff1a; 设两个方程直接解出来就行 代码&#xff1a; #include<bits/stdc.h> using namespace std; int n, m; int main() {int n, m;int ans1, ans2;cin >> n >> m;ans1 n - (-3 sqr…

QT-day3

1、思维导图 2、升级优化自己应用程序的登录界面。 要求&#xff1a; 1. qss实现 2. 需要有图层的叠加 &#xff08;QFrame&#xff09; 3. 设置纯净窗口后&#xff0c;有关闭等窗口功能。 4. 如果账号密码正确&#xff0c;则实现登录界面关闭&#xff0c;另一个应用界面显示。…

C#标志位的使用

C#作为一种功能强大的编程语言&#xff0c;是在.NET框架中广泛使用的语言之一。在实际应用中&#xff0c;C#的标志位在各种系统设计和编程实践中会涉及到。这篇文章将讨论如何使用C#的标志位来跟踪报警声音的播放状态。 报警系统是一种广泛应用的系统&#xff0c;它可以在关键时…

本地部署Ollama+qwen本地大语言模型Web交互界面

什么是 Ollama WebUI&#xff1f; Ollama WebUI 已经更名为 Open WebUI. Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 WebUI&#xff0c;旨在完全离线操作。它支持各种 LLM 运行程序&#xff0c;包括 Ollama 和 OpenAI 兼容的 API。 Ollama WebUI 是一个革命性的 L…

低代码平台总数与深度解析

本文将全面盘点2023年至2024年国内外低代码平台&#xff0c;包括简道云、明道云、腾讯云低代码平台、Zoho Creator、微搭、华为云Astro、金蝶云苍穹、用友YonBuilder、葡萄城活字格、氚云、宜搭、织信、爱速搭、宜搭、轻流、伙伴云、Zion、钉钉搭、数睿数据、奥哲云枢、网易数帆…

AI大战:通用VS垂直模型,谁主未来?

AI大战&#xff1a;通用VS垂直模型&#xff0c;谁主未来&#xff1f; 在人工智能的世界里&#xff0c;大模型的战场正逐渐分化为两个阵营&#xff1a;通用大模型和垂直大模型。 这两种模型各有特点&#xff0c;分别在不同的场景下展现出各自的优势。 那么&#xff0c;面对这…

深度学习(九)——神经网络:最大池化的作用

一、 torch.nn中Pool layers的介绍 官网链接&#xff1a; https://pytorch.org/docs/stable/nn.html#pooling-layers 1. nn.MaxPool2d介绍 nn.MaxPool2d是在进行图像处理时&#xff0c;Pool layers最常用的函数 官方文档&#xff1a;MaxPool2d — PyTorch 2.0 documentation &…