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

相关推荐
wuhen_n5 分钟前
破冰——建立我们的AI开发实验环境
前端·javascript
用户73440281934218 分钟前
SpringBoot —— 实现邮件、短信的发送功能
后端
写Cpp的小黑黑23 分钟前
WebRTC建立流程详解 - 基于WHEP协议
后端
程序员Leo1 小时前
OpenClaw 配置指南:DeepSeek 与 飞书集成
后端·agent
张元清1 小时前
React Hooks vs Vue Composables:2026 年全面对比
前端·javascript·面试
yuki_uix1 小时前
从三个自定义 Hook 看 React 状态管理的设计思想
前端·javascript
彭于晏Yan1 小时前
Springboot实现微服务监控
spring boot·后端·微服务
CyrusCJA2 小时前
JavaScript原型与super关键字
前端·javascript·js
小江的记录本2 小时前
【Spring Boot—— .yml(YAML)】Spring Boot中.yml文件的基础语法、高级特性、实践技巧
xml·java·spring boot·后端·spring·spring cloud·架构
爱敲代码的小黄2 小时前
Agent 能力模块化:Skill 设计与执行机制解析
人工智能·后端·面试