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的第一步。

相关推荐
foggyprojects1 分钟前
AI 问数也要做行级权限:让 Codex 给销售查询加上权限
后端
千里码aicood1 小时前
flask基于数字人的储粮知识问答原型系统研究与实现
后端·python·flask
考虑考虑1 小时前
arthas使用
java·运维·后端
Dovis(誓平步青云)1 小时前
模拟器横评:电脑上看小说、追短剧用什么模拟器?MuMu、雷电、腾讯手游助手实测
android·java·服务器·前端·javascript·电脑
李昊哲小课2 小时前
Spring Boot 4 旅游主题实战教程 阶段三:数据持久化
spring boot·后端·mybatis·旅游
AI 编程助手GPT2 小时前
Bun 1.4 正式发布:从 Zig 改写为 Rust,内置浏览器、图片处理和并行测试
开发语言·人工智能·后端·ai·chatgpt
xiaominlaopodaren2 小时前
three.js最小地图运行时(十):接入离线逻辑瓦片剖面
javascript·gis·three.js
IT_陈寒2 小时前
Redis大KEY删除慢到手抖,这几个方法让我少熬一夜
前端·人工智能·后端
步行cgn2 小时前
传统 SSM 与 Spring Boot 开发对比:从配置地狱到约定优于配置
java·spring boot·后端
独立开发之道2 小时前
【Three.js教程】 图元速查:官方内置的立体图形
开发语言·javascript·ecmascript