使用带有 TypeOrm 的 NestJS 连接 MySQL 数据库时出现问题
Posted
技术标签:
【中文标题】使用带有 TypeOrm 的 NestJS 连接 MySQL 数据库时出现问题【英文标题】:Problem using NestJS with TypeOrm to connect in MySQL database 【发布时间】:2020-07-03 09:30:02 【问题描述】:我在 mysql 中使用带有 TypeOrm 的 NestJS 进行连接,但返回错误:“未找到“用户”的存储库。看起来这个实体没有在当前的“默认”连接中注册?'
没有TypeOrm,我可以运行服务器。
“用户”是我的实体。
app.module
@Module(
imports: [
TypeOrmModule.forRoot(
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: '',
database: 'myserver',
entities: [`$__dirname/**/*.entity.ts,.js`],
synchronize: true,
logging: true
),
UserModule
],
controllers: [AppController],
providers: [AppService],
)
export class AppModule
constructor(
private connection: Connection,
)
user.module
@Module(
imports: [
TypeOrmModule.forFeature([
User,
]),
],
providers: [
UserService,
],
controllers: [
UserController,
]
)
export class UserModule
user.entity
@Entity('user')
export class User extends BaseEntity
@Column()
name?: string;
@Column( name: 'last_name' )
lastName?: string;
@Column( default: false )
active?: boolean;
谁能告诉我,怎么了?
感谢您的帮助!
【问题讨论】:
【参考方案1】:解决了将 TypeOrm 配置移动到另一个文件的问题。见下文:
app.module
@Module(
imports: [
TypeOrmModule.forRoot(),
UserModule
],
controllers: [AppController],
providers: [AppService],
)
export class AppModule
constructor(
private connection: Connection,
)
ormconfig.json
"type": "mysql",
"host": "localhost",
"port": 3306,
"username": "root",
"password": "",
"database": "myserver",
"synchronize": true,
"logging": true,
"autoLoadEntities": true,
"entities": ["./src/**/*.entity.ts,.js", "./dist/**/*.entity.js"]
【讨论】:
以上是关于使用带有 TypeOrm 的 NestJS 连接 MySQL 数据库时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
未找到连接“默认”-TypeORM、NestJS 和外部 NPM 包
捆绑一个 NestJS + TypeORM 应用程序(使用 webpack)