如何修复 Nestjs 应用程序上的 CustomRepositoryCannotInheritRepositoryError?

gan*_*404 1 node.js nestjs

运行nestjs应用程序时遇到问题。

当前生态系统:
- Windows 10
-node版本:v12.10.0
-npm版本:6.10.3
-nestjs版本:6.14.2

重现步骤:

git clone https://github.com/gandra/nestjs-task-managament
cd nestjs-task-managament
npm i
npm run start
Run Code Online (Sandbox Code Playgroud)

收到以下错误:

CustomRepositoryCannotInheritRepositoryError: Custom entity repository TaskRepository  cannot inherit Repository class without entity being set in the @EntityRepository decorator.
    at new CustomRepositoryCannotInheritRepositoryError (C:\learn\node\nestjs-task-managament\node_modules\typeorm\error\CustomRepositoryCannotInheritRepositoryError.js:10:28)
    at EntityManager.getCustomRepository (C:\learn\node\nestjs-task-managament\node_modules\typeorm\entity-manager\EntityManager.js:607:23)
    at Connection.getCustomRepository (C:\learn\node\nestjs-task-managament\node_modules\typeorm\connection\Connection.js:365:29)
    at getCustomRepository (C:\learn\node\nestjs-task-managament\node_modules\@nestjs\typeorm\dist\typeorm.providers.js:15:68)
    at InstanceWrapper.useFactory [as metatype] (C:\learn\node\nestjs-task-managament\node_modules\@nestjs\typeorm\dist\typeorm.providers.js:20:24)
    at Injector.instantiateClass (C:\learn\node\nestjs-task-managament\node_modules\@nestjs\core\injector\injector.js:291:55)
    at callback (C:\learn\node\nestjs-task-managament\node_modules\@nestjs\core\injector\injector.js:75:41)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async Injector.resolveConstructorParams (C:\learn\node\nestjs-task-managament\node_modules\@nestjs\core\injector\injector.js:116:24)
    at async Injector.loadInstance (C:\learn\node\nestjs-task-managament\node_modules\@nestjs\core\injector\injector.js:79:9)

Run Code Online (Sandbox Code Playgroud)

gan*_*404 5

似乎以下两件事解决了问题。首先,我将TaskRepository注释从更改@EntityRepository()@EntityRepository(Task)。修复后我遇到了错误EntityMetadataNotFound。然后我更改了TypeOrm entities文件中的 consrc/config/typeorm.config.ts并替换entities: [__dirname + '/../**/*.entity.ts'],entities: [__dirname + '/../**/*.entity.{js,ts}'],.