简介
Nest(NestJS)是一个用于构建高效、可扩展的 Node.js 服务端应用的框架。它使用渐进式 JavaScript,完全支持 TypeScript(同时也允许开发者使用纯 JavaScript 编写代码),并结合了 OOP(面向对象编程)、FP(函数式编程)和 FRP(函数响应式编程)的元素。
在底层,Nest 使用了强大的 HTTP 服务器框架,如 Express(默认)和可选配置的 Fastify。
Nest 在这些常见的 Node.js 框架(Express/Fastify)之上提供了一层抽象,同时也将它们的 API 直接暴露给开发者。这使得开发者可以自由使用底层平台上大量可用的第三方模块。
设计理念
近年来,得益于 Node.js,JavaScript 已经成为前后端应用的 Web "通用语言"。这催生了 Angular、React 和 Vue 等优秀项目,它们提高了开发者的生产力,使得创建快速、可测试、可扩展的前端应用成为可能。然而,尽管 Node(和服务端 JavaScript)有大量优秀的库、辅助工具和工具,但它们都没有有效地解决架构这一核心问题。
Nest 提供了一个开箱即用的应用架构,允许开发者和团队创建高度可测试、可扩展、松耦合且易于维护的应用。该架构深受 Angular 的启发。
安装
要开始使用,你可以通过 Nest CLI 搭建项目,或者克隆一个起始项目(两者效果相同)。
使用 Nest CLI 搭建项目,请运行以下命令。这将创建一个新的项目目录,并用初始的核心 Nest 文件和支持模块填充该目录,为你的项目创建一个常规的基础结构。对于首次使用的用户,建议使用 Nest CLI 创建新项目。我们将在第一步中继续使用这种方式。
$ npm i -g @nestjs/cli
$ nest new project-name提示
要创建一个具有更严格特性集的 TypeScript 项目,请在 nest new 命令中传入 --strict 标志。
替代方案
或者,使用 Git 安装 TypeScript 起始项目:
$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install
$ npm run start提示
如果你想克隆仓库但不包含 git 历史记录,可以使用 degit。
打开浏览器并访问 http://localhost:3000/。
要安装 JavaScript 版本的起始项目,请在上述命令序列中使用 javascript-starter.git。
你也可以通过安装核心包和支持包从零开始创建新项目。请注意,你需要自行设置项目的样板文件。至少需要以下依赖:@nestjs/core、@nestjs/common、rxjs 和 reflect-metadata。查看这篇关于如何创建完整项目的短文:从零开始创建最小化 NestJS 应用的 5 个步骤!。