Я пытаюсь использовать объекты типа orm, определенные вне проекта. То есть у меня есть два проекта: модели и core-api. Models - это пакет npm, который экспортирует определение сущностей. Итак, из core-api (проект nestjs) я пытаюсь определить соединение, используя эти объекты. Примерно так:
@Module({
imports: [ TypeOrmModule.forRoot({
type: 'postgres',
host: 'postgres',
port: 5432,
username: 'myuser',
password: 'mypass',
database: 'mydb',
entities: [
__dirname + '../node_modules/something/models/src/*.entity.ts'
],
synchronize: true,
}), AModule ],
controllers: [],
providers: [],
})
export class AppModule {}
Затем в модуле A я импортирую сущность A из пакета npm:
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AsController } from './As.controller';
import { AsService } from './As.service';
import { A } from 'something/models';
@Module({
imports: [TypeOrmModule.forFeature([ A ])],
controllers: [AController],
providers: [AService],
})
export class AModule {}
Это заканчивается следующей ошибкой:
RepositoryNotFoundError: No repository for "A" was found. Looks like this entity is not registered in current "https://stackoverflow.com/a/54191513/3943197https://stackoverflow.com/a/54191513/3943197default" connection?
Я совершенно заблудился, как следовать, так как не понимаю, как это работает под капотом. Я видел код typeorm и @ nestjs / typeorm, но не мог понять, как его решить.
Спасибо!
UPDATE:
Я мог бы заставить его работать, добавляя класс сущности вместо пути, как сказал @serianox. Кроме того, пакет something/models
npm экспортирует отдельный модуль nest. Этот модуль импортирует / экспортирует объекты, определенные в пакете. Таким образом, я мог бы внедрить сущности в основное приложение.