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

相关推荐
秋田君9 分钟前
构建安全的Vue前后端分离架构:利用长Token与短Token实现单点登录(SSO)策略
前端·javascript·vue.js·elementui·前端框架·mock·sso单点登录客户端
fashia18 分钟前
Java转Go日记(四十四):Sql构建
开发语言·后端·golang·go
GISer_Jing18 分钟前
Canvas &SVG &BpmnJS编辑器中Canvas与SVG职能详解
前端·javascript·编辑器
2402_8813193019 分钟前
web开发全过程总结
前端·javascript·vue.js
2301_8161696122 分钟前
vue路由小案例
前端·javascript·vue.js
colourmind24 分钟前
vue3前端后端地址可配置方案
前端·javascript·vue.js
Tiffany_Ho1 小时前
你引入的lodash充分利用了吗?
前端·javascript·vue.js
sunbyte1 小时前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Rotating Navigation (旋转导航)
前端·javascript·css·vue.js·tailwindcss
程序员Bears1 小时前
Flask项目实践:构建功能完善的博客系统(含评论与标签功能)
后端·python·flask
谢尔登1 小时前
【Umi】项目初始化配置和用户权限
开发语言·javascript·ecmascript