Как исправить CustomRepositoryCannotInheritRepositoryError в приложении nest js? - PullRequest
0 голосов
/ 20 февраля 2020

Проблема Хавина для запуска nestjs приложения.

Текущая экосистема:
- Windows 10
- node ver: v12.10.0
- npm ver: 6.10.3
- nestjs ver: 6.14.2

Шаги для воспроизведения:

git clone https://github.com/gandra/nestjs-task-managament
cd nestjs-task-managament
npm i
npm run start

Получение следующей ошибки:

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)

1 Ответ

1 голос
/ 23 февраля 2020

Кажется, что следующие 2 вещи исправили проблему. Сначала я изменил аннотацию TaskRepository с @EntityRepository() на @EntityRepository(Task). После этого исправления я получил ошибку EntityMetadataNotFound. Затем я изменил TypeOrm entities con в файле src/config/typeorm.config.ts и заменил entities: [__dirname + '/../**/*.entity.ts'], на entities: [__dirname + '/../**/*.entity.{js,ts}'],.

...