第一步
在这组文章中,你将学习 Nest 的核心基础知识。为了熟悉 Nest 应用程序的基本构件,我们将建立一个基本的 CRUD 应用程序,其功能涵盖了入门级的很多方面。
语言
我们爱上了 TypeScript,但最重要的是–我们爱 Node.js。这就是为什么 Nest 同时兼容 TypeScript 和纯 JavaScript。Nest 利用了最新的语言特性,所以要将其用于纯 JavaScript,我们需要一个 Babel 编译器。
在我们提供的例子中,我们主要使用 TypeScript。
提前准备
请确保你的操作系统上安装了 Node.js(版本>=12,v13 除外)。
新建
使用 Nest CLI 新建一个新项目是非常简单的。安装了 npm 后,你可以在操作系统终端使用以下命令创建一个新的 Nest 项目。
npm i -g @nestjs/clinest new project-name
project-name
目录将被创建,节点模块和其他一些模板文件将被安装,src/目录将被创建并填充几个核心文件。
下面是对这些核心文件的简要概述。
文件名 | 描述 |
---|---|
app.controller.ts | 一个具有单一路线的基本控制器。 |
app.controller.spec.ts | 控制器的单元测试 |
app.module.ts | 应用程序的根模块。 |
app.service.ts | 一个具有单一方法的基本服务 |
main.ts | 应用程序的入口文件,它使用核心函数 NestFactory 来创建一个 Nest 应用程序实例 |
main.ts 包括一个异步函数,它将引导我们的应用程序。
import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";async function bootstrap() {const app = await NestFactory.create(AppModule);await app.listen(3000);
}
bootstrap();
为了创建一个 Nest 应用程序实例,我们使用核心的 NestFactory 类。NestFactory 暴露了一些静态方法,允许创建一个应用程序实例。create()方法返回一个应用程序对象,它满足 INestApplication 接口。这个对象提供了一系列的方法,这些方法将在接下来的章节中描述。在上面的 main.ts 例子中,我们简单地启动了我们的 HTTP 监听器,它让应用程序等待进入的 HTTP 请求。
请注意,用 Nest CLI 搭建的项目会创建一个初始项目结构,鼓励开发者遵循惯例,将每个模块放在自己的专用目录中。
默认情况下,如果在创建应用程序时发生任何错误,你的应用程序将以代码 1 退出。如果你想让它抛出一个错误,而不是禁用选项 abortOnError(例如,NestFactory.create(AppModule, { abortOnError: false })
平台
Nest 的目标是成为一个平台无关的框架。平台独立性使得创建可重用的逻辑部分成为可能,开发人员可以在几种不同类型的应用程序中利用这些逻辑部分。从技术上讲,一旦创建了一个适配器,Nest 就能与任何 Node HTTP 框架一起工作。有两个 HTTP 平台支持开箱即用:Express 和 fastify。你可以选择最适合你的需求的一个。
框架 | 描述 |
---|---|
platform-express | Express 是一个著名的用于节点的极简主义网络框架。它是一个经过实战检验的、可用于生产的库,有很多由社区实现的资源。@nestjs/platform-express 包是默认使用的。许多用户对 Express 的服务很满意,不需要采取任何行动来启用它。 |
platform-fastify | Fastify 是一个高性能和低开销的框架,高度关注提供最大的效率和速度。在这里阅读如何使用它。 |
无论使用哪种平台,它都暴露了自己的应用接口。它们分别为NestExpressApplication
和NestFastifyApplication
。
当你向 NestFactory.create()方法传递一个类型时,就像下面的例子一样,应用程序对象将有专门用于该特定平台的方法。然而,请注意,你不需要指定一个类型,除非你真的想访问底层平台的 API。
const app = await NestFactory.create<NestExpressApplication>(AppModule);
运行应用程序
一旦安装过程完成,你可以在你的操作系统命令提示符下运行以下命令,启动应用程序监听入站的 HTTP 请求。
npm run start
这个命令启动了应用程序,HTTP 服务器在 src/main.ts 文件中定义的端口上监听。一旦应用程序运行,打开你的浏览器并导航到http://localhost:3000/
。你应该看到 Hello World!的消息。
为了监听文件的变化,你可以运行以下命令来启动应用程序。
npm run start:dev
这个命令将监听你的文件,自动重新编译和重新加载服务器。