【问题标题】:TypeError: rxjs_1.lastValueFrom is not a functionTypeError: rxjs_1.lastValueFrom 不是函数
【发布时间】:2021-09-19 20:24:21
【问题描述】:

我正在使用nestjs 构建一个api。添加 typeorm 和 pg 依赖并在app.module.ts 中添加TypeOrmModule.forRoot({}) 代码后,如下所示。

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { CoffeesModule } from './coffees/coffees.module';

@Module({
  imports: [CoffeesModule, TypeOrmModule.forRoot({
    type: 'postgres',
    host: 'localhost',
    port: 5432,
    username: 'postgres',
    password: 'xxx',
    database: 'postgres',
    autoLoadEntities: true,
    synchronize: true
  })],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule { }

当我排除 TypeOrmModule.forRoot({}) 时,我收到错误 TypeError: rxjs_1.lastValueFrom is not a function,但没有错误。

错误的原因可能是什么?

【问题讨论】:

标签: postgresql nestjs typeorm


【解决方案1】:

如果您使用的是 Nest v8,则使用 RxJS 版本 7,它不再为 Observables 提供 toPromise() 方法,因此 Nest 改用 lastValueFrom 方法。如果您收到此错误,您可能需要将您的 rxjs 依赖项更新为 >7。

npm i rxjs@^7
yarn add rxjs@^7
pnpm i rxjs @^7

选择你喜欢的包管理器并使用它。

在NestJS的最后一次更新中,当使用cli初始化项目时抛出此错误。

【讨论】:

  • 谢谢杰!很好的解释!
  • 谢谢,这个帮助
  • 这再次提醒了我为什么我喜欢 StackOverflow。一个相当神秘的错误消息,但这是几秒钟内的完美答案。谢谢!
【解决方案2】:

真正的答案

问题是与嵌套版本冲突.. 任何看到这个的人 - 只要确保你所有的 nestJs 包都是版本 7 或 8 - 不要混合它们。尤其是那些:

  • @nestjs/common
  • @nestjs/core
  • @nestjs/typeorm

从这里:https://github.com/nestjs/nest/issues/7468#issuecomment-876174870

【讨论】:

    【解决方案3】:

    更新 package.json 中的 "@nestjs/typeorm": "^7.1.5" 并输入 npm i 并重启服务器

    【讨论】:

      猜你喜欢
      • 2018-12-28
      • 1970-01-01
      • 2020-06-29
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 2020-03-03
      • 2021-06-05
      • 2019-10-03
      相关资源
      最近更新 更多