介绍

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

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

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

哲学#

近年来,得益于 Node.js,JavaScript 已成为前端和后端应用的 Web“通用语言”。这催生了 AngularReactVue 等出色的项目,它们提高了开发者的工作效率,并支持创建快速、可测试和可扩展的前端应用。然而,尽管 Node(和服务器端 JavaScript)存在大量出色的库、辅助程序和工具,但它们都没有有效解决以下主要问题: - 架构。

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

安装#

要开始,你可以使用 Nest 命令行接口 构建项目,或者克隆一个启动项目(两者都会产生相同的结果)。

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

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

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

备择方案#

或者,使用 Git 安装 TypeScript 入门项目:

1
$ 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

你还可以通过使用 npm(或 yarn)安装核心和支持文件来从头开始手动创建新项目。在这种情况下,当然,你将负责自己创建项目样板文件。

1
$ npm i --save @nestjs/core @nestjs/common rxjs reflect-metadata