Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。它利用 JavaScript 的渐进增强的能力,使用并完全支持 TypeScript (仍然允许开发者使用纯 JavaScript 进行开发),并结合了 OOP (面向对象编程)、FP (函数式编程)和 FRP (函数响应式编程)。

环境准备

Please make sure that Node.js (>= 10.13.0, except for v13) is installed on your operating system.

请确保在您的操作系统上安装了 Node.js (>= 10.13.0,v13 除外)。

查看node和npm版本

1
2
3
4
$ node --version # or node -v
> v16.13.2
$ npm --version # or npm -v
> 8.1.2

新建项目

  1. 使用 npm or yarn 全局安装 @nestjs/cli

    1
    2
    3
    4
    5
    # NPM
    $ npm i -g @nestjs/cli

    # YARN
    $ yarn global add @nestjs/cli
  2. 查看 nest 当前版本

    1
    2
    $ nest --version
    > 8.2.2
  3. 创建项目

    1
    nest new <project-name>

项目结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
app
├─ .eslintrc.js
├─ .git
│ ├─ config
│ ├─ description
│ ├─ HEAD
│ ├─ hooks
│ │ ├─ applypatch-msg.sample
│ │ ├─ commit-msg.sample
│ │ ├─ fsmonitor-watchman.sample
│ │ ├─ post-update.sample
│ │ ├─ pre-applypatch.sample
│ │ ├─ pre-commit.sample
│ │ ├─ pre-merge-commit.sample
│ │ ├─ pre-push.sample
│ │ ├─ pre-rebase.sample
│ │ ├─ pre-receive.sample
│ │ ├─ prepare-commit-msg.sample
│ │ └─ update.sample
│ ├─ info
│ │ └─ exclude
│ ├─ objects
│ │ ├─ info
│ │ └─ pack
│ └─ refs
│ ├─ heads
│ └─ tags
├─ .gitignore
├─ .prettierrc
├─ nest-cli.json
├─ package-lock.json
├─ package.json
├─ README.md
├─ src # 源码目录
│ ├─ app.controller.spec.ts # 控制器测试文件
│ ├─ app.controller.ts # 控制器类
│ ├─ app.module.ts # 模块
│ ├─ app.service.ts # 服务类
│ └─ main.ts # 入口文件
├─ test # 测试代码目录
│ ├─ app.e2e-spec.ts
│ └─ jest-e2e.json
├─ tsconfig.build.json
└─ tsconfig.json

运行项目

1
2
$ cd <project-name>
$ npm run start:dev # or yarn start:dev