介绍 Introduction

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

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 CLI 搭建项目,也可以克隆入门项目(两者将产生相同的结果)。

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

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

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

替代方案

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

bash
$ 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)安装核心和支持文件,从头开始手动创建新项目。当然,在这种情况下,您将负责自己创建项目样板文件。

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