Skip to content

Latest commit

 

History

History
110 lines (75 loc) · 3.26 KB

migrationguide.md

File metadata and controls

110 lines (75 loc) · 3.26 KB

迁移指南

本文提供了一套从 Nest 8 迁移到 Nest 9 的指南。要了解更多关于 Nest 9 中添加的新功能,请查看此链接

Redis 策略(微服务)

现在 Redis 使用 ioredis 驱动,而不是 redis 包。

// Before
const app = await NestFactory.createMicroservice<MicroserviceOptions>(
  AppModule,
  {
    transport: Transport.REDIS,
    options: {
      url: 'redis://localhost:6379',
    },
  },
);

// Now
const app = await NestFactory.createMicroservice<MicroserviceOptions>(
  AppModule,
  {
    transport: Transport.REDIS,
    options: {
      host: 'localhost',
      port: 6379,
    },
  },
);

? 请确保使用 ioredis 软件包

$ npm i ioredis

gRPC client 拦截器

在以前的版本中,配置属性在错误的位置公开。在 v9 中,请确保作为对象的一部分传递,请参阅此处的示例。 interceptors interceptors channelOptions

Testing 模块

以前,如果要将配置对象提供给该方法,并且使用的是默认的 HTTP 驱动程序(express),则必须按如下方式执行此操作:TestingModule#createNestApplication

app = moduleFixture.createNestApplication<NestExpressApplication>(undefined, {
  rawBody: true,
});

在 v9 中,可以跳过第一个参数 ():undefined

app = moduleFixture.createNestApplication<NestExpressApplication>({
  rawBody: true,
});

Kafka message/event 处理程序

以前,Kafka 消息和事件处理程序接收有效负载作为封装的 Kafka message,其中包含 ,,, 和一些其他属性。在 v9 中,这些有效负载会自动封装,您的处理程序将仅接收属性的值。要检索原始的 Kafka 消息,您可以使用该对象(更多内容)。

// Before
@MessagePattern('hero.kill.dragon')
killDragon(@Payload() message: KillDragonMessage, @Ctx() context: KafkaContext) {
  console.log(`Dragon ID: ${message.value.dragonId}`);
}

// Now
@MessagePattern('hero.kill.dragon')
killDragon(@Payload() message: KillDragonMessage, @Ctx() context: KafkaContext) {
  console.log(`Dragon ID: ${message.dragonId}`);
  // Original message: "context.getMessage()"
}

Fastify

Fastify 已升级到 v4。此外,所有以为前缀的核心 Fastify 插件现在都重命名。(例如: becomes 、 becomes 等)。在此处阅读更多内容fastify —— @fastify
fastify-cookie —— @fastify/cookie
fastify-helmet —— @fastify/helmet

@nestjs/swagger 包

包中有一些小的重大更改(并且有些包不再需要引入)。有关更多详细信息,请参阅此 PR

@nestjs/swagger swagger-ui-express fastify-swagger

弃用

所有已弃用的方法和模块都已被删除(例如,已弃用的方法: listenAsync() )

! 此版本放弃了对 Node v10 的支持。我们强烈建议使用最新的 LTS 版本。

译者署名

用户名 头像 职能 签名