NestJS学习笔记-01-nestcli

nestjs 简介

Nest 是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,内置并完全支持 TypeScript(但仍然允许开发人员使用纯 JavaScript 编写代码)并结合了 OOP(面向对象编程),FP(函数式编程)和 FRP(函数式响应编程)的元素。在底层,Nest使用强大的 HTTP Server 框架,如 Express(默认)和 Fastify。Nest 在这些框架之上提供了一定程度的抽象,同时也将其 API 直接暴露给开发人员。这样可以轻松使用每个平台的无数第三方模块。

以上是官网的原话,个人认为最重要的是nestjs提供了IOC、AOP、微服务的架构特性,这与后端的spring框架极其相似,作为一个前端程序员很难接触到这些结构思想,因此想成为一个全栈程序员,学习nestjs无疑是最好的选择。

这里附上nestjs的中文文档地址。

nestjs中文文档

安装

构建nest项目有两种方式,一种是全局安装nestjs/cli,使用cli来构建项目,具体命令如下:

cmd 复制代码
npm i -g @nestjs/cli
nest new project-name

也可以通过git来安装:

cmd 复制代码
git clone https://github.com/nestjs/typescript-starter.git project
cd project
npm i

这里比较推荐第一种方式,但这种方式要时不时升级下版本,具体命令如下:

cmd 复制代码
npm update -g @nest/cli

nest指令

nest为我们提供了很多指令,大大提高了我们开发时的效率,具体的, 我们可以通过 nest -h 查看具体有哪些指令:

nest new|n [options] [name] 命令用来创建一个新的应用,同样可以通过 nest new -h 来查看具体的选项:

  • --skip-git:跳过git初始化
  • --skip-install:跳过npm install
  • --package-manager:指定包管理器
  • --language:指定语言 javascript | typescript, 默认为typescript
  • --strict:开启ts的严格模式

至于 --collect的解释,就要先看一下nest generate命令了。

nest命令除了可以生成整个项目外,也可以生成一些特定的代码,例如controller、service、module等。这就要用到nest generate命令了。

具体的可以通过 nest generate -h查看具体的命令和配置项:

例如,生成module文件:

cmd 复制代码
nest generate module xxx

生成controller文件:

cmd 复制代码
nest generate controller xxx

等等...

同时也可以生成一个完整的代码。不用一个一个生成:

cmd 复制代码
nest generate resource xxx

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

还记得 nest new 命令有个 --collection 选项么,就是配置这个的。一般不需要配置。

其中还有一个 aplication 的类型, 它用来生成整个项目的结构,除了核心代码,还包括了一些配置项文件:

其实 nest new 的底层就是 nest generate application,只不过 nest new 额外做了 git init 和 npm install 等处理。

此外,它也有很多配置项:

  • --flat--no-flat:指定是否生成对应目录文件夹
  • --spec--no-spec:指定是否生成测试文件
  • --skip-import:指定不在 AppModule 里引入, 这个以后再说

  • --project:指定生成代码在哪个子项目

nest build 是用来打包项目的,执行该命令可以生成一个dist目录,并在此目录下生成编译后的代码。同样可以查看一下它的配置项:

  • --wepback--tsc:指定用什么编译,tsc不会打包,webpack会打包为一个js文件
  • --watch:监听文件变化,自动打包
  • --path:指定 tsc 配置文件的路径
  • --config:指定 nest cli 的配置文件,以上配置项也可以在这里配置

nest start命令用来启动项目,具体的配置项:

其中:

  • --watch:监听文件变化
  • --debug:启动调试的 websocket 服务,用来 debug
  • --exec:指定用什么来跑,默认是用 node 跑,你也可以切换别的 runtime

其他的和 build 一样,不再赘述。

最后,还有个nest info命令,是用来查看项目信息的

学好nest指令,是学好nestjs的第一步。

相关推荐
NiNg_1_23428 分钟前
JS模块化工具requirejs详解
开发语言·javascript·ecmascript
果子切克now34 分钟前
vue2与vue3知识点
前端·javascript·vue.js
积水成江1 小时前
Vite+Vue3+SpringBoot项目如何打包部署
java·前端·vue.js·windows·spring boot·后端·nginx
一丝晨光1 小时前
Web技术简史、前后端分离、游戏
前端·javascript·css·游戏·unity·前后端分离·cocos
哪 吒2 小时前
华为OD机试 - 冠亚军排名(Python/JS/C/C++ 2024 E卷 100分)
javascript·python·华为od
原机小子3 小时前
SpringBoot在线教育系统:从零到一的构建过程
数据库·spring boot·后端
&白帝&3 小时前
Vue.js 过渡 & 动画
前端·javascript
2401_857439693 小时前
SpringBoot在线教育平台:设计与实现的深度解析
java·spring boot·后端
总是学不会.3 小时前
SpringBoot项目:前后端打包与部署(使用 Maven)
java·服务器·前端·后端·maven
Fanfffff7204 小时前
深入探索Vue3组合式API
前端·javascript·vue.js