介绍
Nest (NestJS)是一个用于构建高效、可扩展的Node.js服务器端应用程序的框架。它使用渐进式JavaScript,构建并完全支持TypeScript(但仍然允许开发人员使用纯JavaScript编写代码),并结合了OOP(面向对象编程),FP(函数式编程)和FRP(函数式响应式编程)的元素。
在底层,Nest使用了健壮的HTTP服务器框架,比如Express
(默认的),也可以选择配置使用fasttify
!
Nest在这些常见的Node.js框架(Express/ fasttify)之上提供了一个抽象层次,但也直接向开发人员公开了它们的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
[!hint]
要创建一个具有更严格特性集的新TypeScript项目,将——strict标志传递给下一个新命令。
替代选择
或者,用Git安装TypeScript starter项目:
$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install
$ npm run start
[!hint]
如果想克隆没有git历史记录的存储库,可以使用degit。
打开浏览器并导航到http://localhost:3000/。
要安装启动器项目的JavaScript版本,请使用javascript-starter.git
在上面的命令序列中。
你也可以用npm(或yarn)安装核心和支持文件,从头开始手动创建一个新项目。当然,在这种情况下,您将负责自己创建项目样板文件。
$ npm i --save @nestjs/core @nestjs/common rxjs reflect-metadata