使用带有 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)

过滤从查询参数传递的数组。 NestJS,TypeORM

捆绑一个 NestJS + TypeORM 应用程序(使用 webpack)

NestJS TypeORM mongodb 在数组列中查找不起作用

使用 TypeORM 和 NestJs 和 Typescript 创建新迁移时出错 [关闭]