• 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();
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    这段代码是使用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 端口进行监听。

  • 相关阅读:
    站在巨人的肩膀上谈-计算机视觉走向未来
    Docker 基本使用
    将CString里的连续字符串压缩为一个
    数据结构-作业2
    JS有哪些基本数据类型,它们的区别?
    工作5-8年的外包测试员,平均年薪有多少?
    计算机毕业设计之java+javaweb社区共享食堂信息系统
    基于YOLOv5的手势识别系统(含手势识别数据集+训练代码)
    文本生成系列之retrieval augmentation(进阶篇Atlas)
    【Go】excelize库实现excel导入导出封装(一),自定义导出样式、隔行背景色、自适应行高、动态导出指定列、动态更改表头
  • 原文地址:https://blog.csdn.net/weixin_36829761/article/details/133610818