为什么我的 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
在内存中管理您的打字稿编译,并在内部处理从 src
到 dist
的引用。但是,当您进入 运行 纯 node
变体时,这是一个问题,因为您将位于 dist
目录而不是 src
,因此 TypeORM 不会无法使用定义的实体数组找到您的实体。相反,您应该使用 entities: [join(__dirname, '/**/*.entity.{js,ts}')],
以允许在 ts 和 js 之间动态更改,这样您就不必担心自己是什么 运行.
我还建议使用 tsc-watch
进行开发,因为它会在默认情况下 运行 node
成功编译,您不必担心 [= 的内存消耗10=].
我正在使用 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
在内存中管理您的打字稿编译,并在内部处理从 src
到 dist
的引用。但是,当您进入 运行 纯 node
变体时,这是一个问题,因为您将位于 dist
目录而不是 src
,因此 TypeORM 不会无法使用定义的实体数组找到您的实体。相反,您应该使用 entities: [join(__dirname, '/**/*.entity.{js,ts}')],
以允许在 ts 和 js 之间动态更改,这样您就不必担心自己是什么 运行.
我还建议使用 tsc-watch
进行开发,因为它会在默认情况下 运行 node
成功编译,您不必担心 [= 的内存消耗10=].