了解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.mfbz.cn/a/721332.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机怎么额外搭建两个Redis节点,配置多个 Redis 实例

前提条件 在开始之前,请确保你已经具备以下条件: 一台已安装 Redis 的虚拟机。虚拟机上已安装基本的 Linux 工具(例如 FinalShell)。 步骤二:配置额外的 Redis 实例 接下来,我们将配置两个新的 Redis 实…

Java——可变参数

一、可变参数 1、介绍 Java的可变参数(Varargs)是一种语法特性,允许一个方法接受不定数量的参数。可变参数的使用通过在参数类型后面添加省略号(...)实现。这使得方法在调用时可以传入不同数量的参数,而不…

Datakit管理openGauss6.0集群,监控运维超方便

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…

Java开发的构建神器:Maven以及如何安装部署Maven

目录 一、Maven引言1.1 Maven的核心概念✍. POM (Project Object Model)✌. 依赖管理✍. 生命周期与构建阶段✌. 插件系统 1.2 Maven的工作流程✍. 读取POM文件:✌. 依赖解析:✍. 构建生命周期:✌. 插件执行:✍. 构建输出&#xf…

物联网技术-第4章物联网通信技术-4.1无线网络

目录 1. 无线通信概念 (1)有线与无线 (2)电磁波的频谱 (3)频段的划分 (4)调制与解调 (5)调制技术 (6)信道的复用 (…

#QT(QCharts绘制曲线)

1.IDE:QTCreator 2.实验:绘制曲线图表 3.记录: 4.代码 pro QT core gui #加入以下代码引入charts QT charts greaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17# You can make your code fail to compile if it uses depre…

“Git之道:掌握常用命令,轻松管理代码“

目录 1. 初始化和配置 2. 提交和更新 3. 分支和合并 4. 查看和比较 5. 远程仓库 6. 文件操作命令 1. 初始化和配置 git init:在当前目录初始化一个新的Git仓库git config:配置Git的全局或局部选项git clone:从远程仓库克隆一个本地副本…

全网最全 Kimi 使用手册,看完 Kimi 效率提升 80%

在当前AI文字大模型领域,ChatGPT4.0无疑是最强大。然而,最近最火爆的大模型非国产Kimi莫属。 相较于其它大模型,Kimi 最大的优势在于,超长文本输入,支持200万汉字,是全球范围内罕见的超长文本处理工具&…

数据结构与算法-字符出现的次数

问题描述 以下是这个找出字符串中字符串出现频率最多的字符。大家可以自行研究一下,题目不难,我今天尝试使用C语言来完成解答,但是在解答过程居然出现了一个意想不到的问题。可能是高级语言用多了,C语言某些函数的限制和风险忘记管…

携手精益生产培训机构,让职业发展更上一层楼!——张驰咨询

精益生产培训机构在职业发展中的关键作用不容忽视。对于许多初入职场或希望深化精益生产理解的从业者来说,这些机构如同一盏明灯,照亮了前行的道路。 首先,精益生产培训机构是知识的集中地。它们不仅提供了全面的理论框架,还涵盖了…

数据可视化实验三:Matplotlib绘图

目录 一、绘制斜率为3和5的直线图 1.1 代码实现 1.2 绘制结果 二、使用Matplotlib绘制招聘职位数量关系的线图,通过Pandas读取数据绘制折线图 2.1 代码实现 2.2 绘制结果 三、使用Matplotlib绘制房价与房屋面积的散点图,数据通过Pandas读取表格 3…

Linux中DNS搭建

文章目录 一、DNS介绍1.1、DNS是什么1.2、DNS的工作原理1.3、DNS的域名结构 二、Bind介绍2.1、bind概述2.2、bind主要配置文件 三、DNS安装四、主要配置文件解析(除/etc/named.conf)4.1、/etc/named.rfc1912.zones4.2、/etc/rc.d/init.d/named4.3、/etc/…

上海AI Lab推出8B模型,奥数成绩媲美GPT-4

只用1/200的参数,就能让大模型拥有和GPT-4一样的数学能力? 复旦大学和上海AI实验室的研究团队刚刚研发出了一款具有超强数学能力的模型。 这款模型名为MCTSr,以Llama 3为基础,参数量只有8B,却在奥赛级别的题目上取得了…

3.Nginx配置文件基本介绍

nginx配置文件所在路径:/usr/local/nginx/conf/nginx.conf nginx配置文件有三块: 1.全局块 从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令。 配置运行nginx服务器的用户(组)允许生成的worker process数,Nginx服务器并发处理服务…

现货白银买卖网站靠什么生存?

现货白银交易平台的官网是该企业在互联网上的门面,它向外界展示了平台的形象、文化和价值观。通过官网,投资者可以了解一家现货白银交易平台的发展历程、服务特色等,从而形成对平台的整体印象。 现货白银平台的官网是其发布官方信息、新闻动态…

JVM 性能分析案列——使用 JProfiler 工具分析 dump.hprof 堆内存快照文件排查内存溢出问题

在 windows 环境下实现。 参考文档 一、配置 JVM 参数 配置两个 JVM 参数: -XX:HeapDumpOnOutOfMemoryError,配置这个参数,会在发生内存溢出时 dump 生成内存快照文件(xxx.hprof)-XX:HeapDumpPathF:\logs&#xff…

Android ViewModel实现和原理

ViewModel实现和原理 前言1. 使用1.1 gradle准备1.2 模拟场景1.3. LiveData和ViewModel1.4 更新数据 2. 原理与源码解读2.1 添加观察者2.2 setValue2.3 post 参考资料 前言 ViewModel的主要基于观察者的设计模式,他主要分为两个部分: 提供者Provider&a…

RK3588/算能/Nvidia智能盒子:[AI智慧油站」,以安全为基,赋能精准经营

2021年9月,山东省应急管理厅印发了关于《全省危险化学品安全生产信息化建设与应用工作方案(2021-2022 年)》的通知,要求全省范围内加快推进危险化学品安全生产信息化、智能化建设与应用工作,建设完善全省危险化学品安全…

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

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

0元体验苹果macOS系统,最简单的虚拟机部署macOS教程

前言 最近发现小伙伴热衷于在VMware上安装体验macOS系统,所以就有了今天的帖子。 正文开始 首先,鉴于小伙伴们热衷macOS,所以小白搜罗了一圈macOS系统,并开启了分享通道。 本次更新的系统版本是: macOS 10.13.6 ma…