介绍

NestJS 是一个用于构建高效、可扩展的 Node.js 服务端应用程序的框架

介绍

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

在底层,Nest 使用了强大的 HTTP 服务器框架,如 Express(默认),也可以选择配置为使用 Fastify

Nest 在这些常见的 Node.js 框架(Express/Fastify)之上提供了一层抽象,同时也直接向开发者暴露了它们的 API。这使得开发者可以自由地使用底层平台上可用的无数第三方模块。

设计哲学

近年来,得益于 Node.js,JavaScript 已经成为前端和后端应用程序的网络"通用语言"。这催生了像 AngularReactVue 这样的优秀项目,它们提高了开发者的生产力,并使得创建快速、可测试和可扩展的前端应用程序成为可能。然而,虽然 Node(和服务端 JavaScript)存在大量优秀的库、助手和工具,但它们都没有有效地解决架构这一主要问题。

Nest 提供了一个开箱即用的应用程序架构,允许开发者和团队创建高度可测试、可扩展、松耦合且易于维护的应用程序。该架构深受 Angular 的启发。

安装

要开始使用,您可以使用 Nest CLI 搭建项目,或者克隆一个启动项目(两种方式都会产生相同的结果)。

要使用 Nest CLI 搭建项目,请运行以下命令。这将创建一个新的项目目录,并在目录中填充初始的核心 Nest 文件和支持模块,为您的项目创建一个传统的基础结构。对于首次使用的用户,建议使用 Nest CLI 创建新项目。我们将在第一步中继续使用这种方法。

$ npm i -g @nestjs/cli
$ nest new project-name

info 提示 要创建一个具有更严格功能集的新 TypeScript 项目,请在 nest new 命令中传递 --strict 标志。

替代方案

或者,使用 Git 安装 TypeScript 启动项目:

$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install
$ npm run start

info 提示 如果您想克隆仓库而不包含 git 历史记录,可以使用 degit

打开浏览器并导航到 http://localhost:3000/

要安装 JavaScript 版本的启动项目,请在上述命令序列中使用 javascript-starter.git

您也可以通过安装核心和支持包从头开始一个新项目。请记住,您需要自己设置项目样板文件。至少,您需要这些依赖项:@nestjs/core@nestjs/commonrxjsreflect-metadata。查看这篇关于如何创建完整项目的简短文章:从零开始创建最小 NestJS 应用的 5 个步骤!