Nestjs实战干货-概况-第一步

news/2024/10/31 5:25:19/

第一步

在这组文章中,你将学习 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-expressExpress 是一个著名的用于节点的极简主义网络框架。它是一个经过实战检验的、可用于生产的库,有很多由社区实现的资源。@nestjs/platform-express 包是默认使用的。许多用户对 Express 的服务很满意,不需要采取任何行动来启用它。
platform-fastifyFastify 是一个高性能和低开销的框架,高度关注提供最大的效率和速度。在这里阅读如何使用它。

无论使用哪种平台,它都暴露了自己的应用接口。它们分别为NestExpressApplicationNestFastifyApplication

当你向 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

这个命令将监听你的文件,自动重新编译和重新加载服务器。


http://www.ppmy.cn/news/42072.html

相关文章

[c++17新增语言特性] --- 折叠表达式

折叠表达式(Fold Expression)是C++17引入的一个新特性,它允许对多个参数进行操作,并返回一个值。折叠表达式的语法如下: ( pack op ... ) ( ... op pack ) ( pack op ... op init ) ( init op ... op pack

基于Spring boot和Vue3的博客平台:系统通知、评论回复通知、专栏更新通知、用户角色与权限管理模块

目录 一、系统通知、评论回复通知、专栏更新通知 1.前端通知展示 2.后端通知实现 3.发送评论回复通知 4.发送专栏更新通知 二、实时通知与邮件通知 1.实时通知 三、用户角色与权限管理 1.角色与权限数据模型 2.分配角色与权限 3.基于角色的访问控制 在这篇博客中&am…

卷积神经网络底层原理

1.卷积神经网络底层原理 声明&#xff1a;以下为《大话计算机》作者冬瓜哥课程视频截图&#xff0c;仅供学习 1.1卷积 一张图经过一种卷积核&#xff08;核函数&#xff09;滑动窗口进行卷积运算后得到一张特征图&#xff0c;这只是这种卷积核视角下看到的特征。所以我们需要多…

网络安全行业现在好混吗,工资水平怎么样?

一个离职转行员工的实话&#xff1a;网络安全是永远稀缺的&#xff0c;它的稀缺表现在你学不懂、学不够、学不通的知识与很高的技术壁垒的层面上。想混日子&#xff0c;这行最不缺的就是平庸之辈&#xff0c;想做好做强你要掂量自己有没有那个天赋&#xff01; 技术人才&#…

【Linux C/C++】关于结构体定义,typedef关键字的使用场景

typedef关键字修饰结构体声明的优劣 优势&#xff1a; 在C语言中&#xff0c;可以使用两种方式来定义结构体类型&#xff1a;使用struct关键字和使用typedef关键字。使用struct关键字定义结构体类型时&#xff0c;需要在定义时同时指定结构体的名称和成员变量&#xff0c;例如…

Compose (11/N) - 手势

一、点击 1.1 可点击 Modifier.clickable( ) 允许应用检测对该元素的点击。 Composable fun ClickableSample() {val count remember { mutableStateOf(0) }Text(text count.value.toString(),modifier Modifier.clickable { count.value 1 }) } 1.2 手势检测 Modifier.p…

【MATLAB图像处理实用案例详解(10)】——基于Kalman滤波的目标跟踪预测红色小球位置

目录一、Kalman滤波二、Kalman滤波源程序三、Kalman滤波预测红色小球位置程序实现一、Kalman滤波 Kalman 滤波算法是一个最优化自回归数据处理算法&#xff0c;对于很多问题的解決&#xff0c;它是最优、效率最高甚至是最有用的。Kalman 滤波的广泛应用己经超过30年&#xff0…

【C++】STL之stack、queue的使用和模拟实现+优先级队列(附仿函数)+容器适配器详解

之前的一段时间&#xff0c;我们共同学习了STL中一些容器&#xff0c;如string、vector和list等等。本章我们将步入新阶段的学习——容器适配器。本章将详解stack、queue的使用和模拟实现优先级队列&#xff08;附仿函数&#xff09;容器适配器等。 目录 &#xff08;一&…