Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,使用 TypeScript 构建并完全支持它(但仍允许开发人员使用纯 JavaScript 进行编码),并结合了 OOP(面向对象编程)、FP(函数式编程)和 FRP(函数式响应式编程)的元素。
在底层,Nest 使用了强大的 HTTP 服务器框架,如 Express(默认),也可以选择配置为使用 Fastify!
Nest 在这些常见的 Node.js 框架(Express/Fastify)之上提供了一定程度的抽象,但也直接向开发人员公开了它们的 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
要创建具有更严格功能集的新 TypeScript 项目,请将 --strict
标志传递给 nest new
命令。
替代方案
或者,使用 Git 安装 TypeScript 入门项目:
$ 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)安装核心和支持文件,从头开始手动创建新项目。当然,在这种情况下,您将负责自己创建项目样板文件。
$ npm i --save @nestjs/core @nestjs/common rxjs reflect-metadata