NestJS代码片段解读(1)

import { NestFactory } from '@nestjs/core';import {FastifyAdapter,NestFastifyApplication,
} from '@nestjs/platform-fastify';import { AppModule } from './app.module';async function bootstrap() {// 使用fastify驱动const app = await NestFactory.create<NestFastifyApplication>(AppModule,new FastifyAdapter(),{// 启用跨域访问cors: true,// 只使用error和warn这两种输出,避免在控制台冗余输出logger: ['error', 'warn'],},);// 设置全局访问前缀app.setGlobalPrefix('api');// 启动后的输出await app.listen(3100, () => {console.log('api: http://localhost:3100');});
}
bootstrap();

这段代码是使用NestJS框架编写的一个简单的服务器启动脚本。NestJS 是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,内置 TypeScript(保留了与纯 JavaScript 的兼容性),并结合了 OOP(面向对象编程),FP(函数式编程)和 FRP(函数响应式编程)的元素。

下面是具体的代码解读:

  1. 引入依赖

    • NestFactory:NestFactory 是 Nest 的核心部分,用于创建应用实例。
    • FastifyAdapterNestFastifyApplication:这两个来自 ‘@nestjs/platform-fastify’ 的对象是为了让 NestJS 使用 Fastify 作为 HTTP 服务器,而非默认的 Express。
    • AppModule:这是应用的根模块。
  2. 定义 bootstrap 异步函数

    • 在这个函数中,我们使用 NestFactory.create() 方法创建一个 NestJS 应用。我们指定了类型为 NestFastifyApplication(这意味着我们将使用 Fastify 而不是 Express 作为 HTTP 框架),并传递了 AppModulenew FastifyAdapter()(用于使用 Fastify)。
    • 对象 { cors: true, logger: ['error', 'warn'] } 是创建应用时的配置项,其中 cors: true 启用了跨域资源共享,logger: ['error', 'warn'] 限制了 logger 只显示错误和警告信息,避免冗余输出。
  3. 设置全局路由前缀

    • app.setGlobalPrefix('api'):这将 ‘api’ 设置为所有路由的全局前缀。例如,如果你有一个路由 /users,那么实际的访问 URL 将是 /api/users
  4. 监听端口并启动应用

    • await app.listen(3100, ...):这将启动 Fastify 服务器,并在端口 3100 上监听输入的 HTTP 请求。当服务器成功启动后,会在控制台打印 ‘api: http://localhost:3100’。
  5. 最后,调用 bootstrap() 函数启动服务器。

这段代码的主要目的是启动一个 NestJS 服务器,并且使用 Fastify 作为其底层的 HTTP 服务框架。它还启用了 CORS,并限制了 logger 的输出级别。所有的路由都将以 ‘/api’ 作为前缀,服务器将在本地的 3100 端口进行监听。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/96549.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试老鸟总结,Jmeter接口测试实例-签名接口,一文彻底打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、签名规则 1&a…

3分钟带你认识腾讯云服务器CVM_一看就懂

腾讯云服务器CVM提供安全可靠的弹性计算服务&#xff0c;腾讯云明星级云服务器&#xff0c;弹性计算实时扩展或缩减计算资源&#xff0c;支持包年包月、按量计费和竞价实例计费模式&#xff0c;CVM提供多种CPU、内存、硬盘和带宽可以灵活调整的实例规格&#xff0c;提供9个9的数…

多个excel合并

目的&#xff1a;将同一个文件下的多个 “京东差评.xlsx” 合并为一个&#xff1a;“京东汇总.xlsx" 代码如下&#xff1a; # -*- coding: utf-8 -*- """ Created on Wed Oct 4 12:52:32 2023author: 64884 """import pandas as pd impor…

责任链模式 行为型设计模式之十

1.背景 当一个请求需要经过多个节点的处理&#xff0c;如果不考虑任何模式&#xff0c;每个对象要根据是否符合条件来决定是不是自己处理&#xff0c;这样就要使用if-else去处理。确定了类似A->B->C->D的处理流程后就不能再修改&#xff08;除非修改源代码&#xff09…

开发工具:推荐几款非常漂亮的VScode主题

目录 Atom One Dark Theme Github Theme Night Owl Theme Night Owl JellyFish Theme Sublime Material Theme 深色 浅色 今天给大家推荐几款非常漂亮的VScode主题&#xff0c;值得收藏&#xff01; Atom One Dark Theme 它是市场上最好的深色主题之一。Atom 标志性的…

Java中关于Random()随机数的小细节

第一种&#xff1a;使用Random类&#xff1a; 拿整数为例&#xff0c;只有整型可以设置种子&#xff0c;nextInt(100)&#xff0c;返回一个0-99的随机整数&#xff0c;包括0&#xff0c;不包括100&#xff0c;那么如果我们想产生[min,max]这个区间的随机整数&#xff0c;可用通…

前端笔试题总结,带答案和解析(二)

前端笔试题总结&#xff0c;带答案和解析&#xff08;二&#xff09; 这个系列将持续更新前端笔试题一期十题&#xff0c;每五题做一个标题&#xff08;方便跳转&#xff09;&#xff0c;您可以一期一期阅读&#xff0c;也可以在点击汇总&#xff0c;一口气看完&#xff0c;如果…

C/C++学习 -- SHA-256算法

SHA-256算法概述 SHA-256代表"Secure Hash Algorithm 256-bit"&#xff0c;是一种安全的哈希算法&#xff0c;输出固定长度的256位&#xff08;32字节&#xff09;哈希值。SHA-256被广泛用于加密、数字签名、密码学以及区块链等领域&#xff0c;因为它提供了高度的安…

python多线程与多进程

多线程与多进程 一, 什么是进程, 什么是线程? ​ 进程: 运行中的程序. 每次我们执行一个程序, 咱们的操作系统对自动的为这个程序准备一些必要的资源(例如, 分配内存, 创建一个能够执行的线程. ) ​ 线程: 程序内, 可以直接被CPU调度的执行过程. 是操作系统能够进行运算调度…

详解Python的装饰器(多层语法糖、装饰器和装饰器修复技术及递归函数)

python中的装饰器(decorator)一般采用语法糖的形式&#xff0c;是一种语法格式。比如&#xff1a;classmethod&#xff0c;staticmethod&#xff0c;property&#xff0c;xxx.setter&#xff0c;wraps()&#xff0c;func_name等都是python中的装饰器。 装饰器&#xff0c;装饰的…

pytorch_神经网络构建2(数学原理)

文章目录 深层神经网络多分类深层网络反向传播算法优化算法动量算法Adam 算法 深层神经网络 分类基础理论: 交叉熵是信息论中用来衡量两个分布相似性的一种量化方式 之前讲述二分类的loss函数时我们使用公式-(y*log(y_)(1-y)*log(1-y_)进行概率计算 y表示真实值,y_表示预测值 …

深入探究HTML表单与JavaScript的关系

深入探究HTML表单与JavaScript的关系 引言 HTML表单是网页中数据收集的重要工具&#xff0c;而JavaScript则充当着这些数据的处理者和控制者的角色。二者之间的关系非常紧密&#xff0c;共同构成了现代Web应用中用户交互的基础。在这篇博客中&#xff0c;我们将详细地解析HTM…

【Pinia】小菠萝详细使用说明

文章目录 1. 介绍1.1 Pinia介绍1.2 pinia的属性说明 2. 安装3. 初步使用4. store具体使用4.1 值修改4.2.1 直接修改4.2.2 通过$patch整体修改4.2.3 通过$patch函数式4.2.4 通过$state整体修改4.2.5 通过actions修改 4.2 解构store 5 actions使用6. getters使用6.1 通过this获取…

Java Collection

Collection接口常用方法 ①添加&#xff1a; ​ add(Object obj):只要是对象都可以添加 ​ addAll(Collection c)&#xff1a;添加另一个集合的元素 ②删除&#xff1a; ​ clear():清空集合元素 ​ remove(Object obj)删除某个元素对象 ​ removeAll(Collection c)&…

熔断、限流、降级 —— SpringCloud Alibaba Sentinel

Sentinel 简介 Sentinel 是阿里中间件团队开源的&#xff0c;面向分布式服务架构的高可用流量防护组件&#xff0c;主要以流量为切入点&#xff0c;从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性 Sentinel 提供了两个服务组件…

【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)

一&#xff0c;VMware下载地址&#xff1a; 百度网盘链接链接&#xff1a;百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可享受免费存储空间https:/…

初识jmeter及简单使用

目录 1、打开页面&#xff1a; 2、添加线程组&#xff1a; 3、线程组中设置参数&#xff1a; 4、添加请求 5、添加一个http请求后&#xff0c;设置请求内容 6、添加察看结果树 7、执行&#xff0c;查看结果 一般步骤是&#xff1a;在测试计划下面新建一个线程组&#xf…

postgresql-备份与恢复

postgresql-备份与恢复 基本概念备份类型物理备份与逻辑备份在线备份与离线备份全量备份与增量备份 备份恢复工具备份与恢复逻辑备份与还原备份单个数据库psqlpg_dumppg_store 备份整个集群 基本概念 服务器系统错误、硬件故障或者人为失误都可能导致数据的丢失或损坏。因此&am…

HTTP协议的不同版本及其新特性

HTTP/0.9 HTTP/0.9是最早的HTTP协议版本&#xff0c;于1991年发布。它具有以下特点&#xff1a; 只支持GET方法。不支持HTTP头部信息。响应只能是HTML文本。不支持状态码。 HTTP/1.0 HTTP/1.0于1996年发布&#xff0c;是HTTP协议的第一个正式版本。它具有以下特点&#xff…

一文全面解读CKA认证的含金量、详细介绍!

K8s是目前最流行的开源容器编排引擎&#xff0c;在全球都得到了广泛应用&#xff0c;BAT、京东、360、华为、网易、IBM、知乎等国内外诸多知名公司都在基于K8s构建企业容器云平台&#xff0c;支撑公司业务&#xff0c;越来越多的企业也都在向K8s迁移。相信在不远的将来&#xf…