错误:没有""的存储库"已找到.看起来此实体未在当前""中注册;默认&



主要思想是使用typeorm连接3个表。其中2个在开始时工作正常:

module.exports = {
"type": "mssql",
"host": "xxx",
"port": 1433,
"username": "xxx",
"password": "xxx",
"database": "xxx",
"entities": [
"build/models/**/*.js"
]}

问题是,当我试图连接第三个表时,它使用其他表作为";ManyToOne";。然后我得到这个错误:

未处理的PromiseRetention警告:错误:找不到结果#RES_ControllerId的实体元数据。检查您是否指定了正确的实体对象,以及它是否在连接选项中连接。

我解决了这个问题,添加"__目录名";到实体。

module.exports = {
"type": "mssql",
"host": "xxx",
"port": 1433,
"username": "xxx",
"password": "xxx",
"database": "xxx",
"entities": [
__dirname + "build/models/**/*.js"  <------ Here
]
}

然后错误变为:

没有";表la1";已找到。看起来此实体未在当前"中注册;默认";联系

没有"的存储库;表2";已找到。看起来此实体未在当前"中注册;默认";联系

我在这里很震惊,我不知道如何继续我的程序,如果你需要其他东西,没有问题。提前谢谢。

尝试将__dirname + "build/models/**/*.js"更改为"build/models/**/*{.js,.ts}"

确保使用@entity((注释实体类

示例

@Entity() <-- IMPORTANT
export class Tax {
@PrimaryGeneratedColumn()
taxId: number;
@Column({ type: 'varchar', length: 48 })
name: string;
@Column({ type: 'varchar', length: 128 })
description: string;
@Column({ type: 'smallint' })
rate: string;
}

可能实体文件的名称不正确,导致无法找到实体文件。正确的实体文件名是xxx.entity.ts。当我将其命名为xxx.ts时,typescript不会报告错误,但nestjs会报告错误。

最新更新