为什么我的 TypeORM 无法在产品模式下连接数据库?

Why my TypeORM can't connect database in product mode?

我正在使用 Nest.js+TypeORM 开发并尝试在我的计算机中部署。

我可以在 develop mode 连接到 mysql,但在 product mode 连接失败。

下面是我的 TypeORM 配置。

@Module({
  imports: [
    AuthModule,
    ClassificationModule,
    ArticleModule,
    UserModule,
    CommentModule,
    FragmentModule,
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      // logging: ["query"],
      port: 3306,
      username: 'root',
      password: '123456',
      database: 'myblog',
      entities: ['src/**/**.entity{.ts,.js}'],
      synchronize: true
    })
  ]
})
export class AppModule { }

develop mode,可以成功连接到mysql。

但是在product mode中显示无法连接mysql。

ts-node 在内存中管理您的打字稿编译,并在内部处理从 srcdist 的引用。但是,当您进入 运行 纯 node 变体时,这是一个问题,因为您将位于 dist 目录而不是 src,因此 TypeORM 不会无法使用定义的实体数组找到您的实体。相反,您应该使用 entities: [join(__dirname, '/**/*.entity.{js,ts}')], 以允许在 ts 和 js 之间动态更改,这样您就不必担心自己是什么 运行.

我还建议使用 tsc-watch 进行开发,因为它会在默认情况下 运行 node 成功编译,您不必担心 [= 的内存消耗10=].