Nest是一个用于构建高效、可伸缩的Node.js服务器端应用程序的框架。它使用渐进式JavaScript,构建并完全支持TypeScript(但仍然允许开发人员使用纯JavaScript编写代码),并结合了OOP(面向对象编程)、FP(函数编程)和FRP(函数反应性编程)的元素。
在底层,Nest使用了健壮的HTTP服务器框架,比如Express(默认)和Fastify。Nest提供了这些框架之上的抽象级别,但也可以直接向开发人员公开它们的api。这样就可以方便地使用为每个平台提供的无数第三方模块。
理念
近年来,得益于Node.js,JavaScript已经成为web前端和后端应用程序的“通用语言”。这催生了Angular、React和Vue等出色的项目,它们提高了开发人员的工作效率,并支持构建快速、可测试和可扩展的前端应用程序。然而,尽管Node(和服务器端JavaScript)有很多优秀的库、助手和工具,但它们都不能有效地解决主要问题——体系结构。
Nest提供了一种开箱即用的应用程序体系结构,允许开发人员和团队创建高度可测试、可伸缩、松散耦合且易于维护的应用程序。
安装
要开始,您可以使用Nest CLI构建项目,或者克隆一个启动项目(两者都会产生相同的结果)。
要使用Nest CLI构建项目,请运行以下命令。这将创建一个新的项目目录,并用初始核心嵌套文件和支持模块填充该目录,为您的项目创建一个传统的基础结构。建议初次使用Nest CLI创建一个新项目。我们将在第一步继续使用这种方法。
$ npm i -g @nestjs/cli
$ nest new project-name
或者,用Git安装TypeScript starter项目:
$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install
$ npm run start
要安装starter项目的JavaScript风格,请在上面的命令序列中使用JavaScript -starter.git。
您还可以使用npm(或yarn)安装核心和支持文件,手工从头创建一个新项目。当然,在这种情况下,您将自己负责创建项目样板文件。
$ npm i --save @nestjs/core @nestjs/common rxjs reflect-metadata