Соединение с двумя базами данных с использованием TypeORM и Nest JS выдает ConnectionNotFoundError , когда пользовательский репозиторий регистрируется с использованием соединения (UserConnection & PhotoConnection) one для каждой базы данных. Я создал минимальное репо здесь https://github.com/masonridge/connissuewithndb. Регистрация TypeOrm выполняется в AppModule of Nest JS
(app.module.ts)
@Module({
imports: [
TypeOrmModule.forRootAsync({
name: 'PhotoConnection',
useFactory: async () => {
return {
type: 'sqlite',
synchronize: true,
database: 'TestPhoto.sqlite',
entities: [Photo],
} as SqliteConnectionOptions;
},
}),
TypeOrmModule.forRootAsync({
name: 'UserConnection',
useFactory: async () => {
return {
type: 'sqlite',
synchronize: true,
database: 'TestUser.sqlite',
entities: [User],
} as SqliteConnectionOptions;
},
}),
// TypeOrmModule.forFeature([User, UserRepository], 'UserConnection'),
// TypeOrmModule.forFeature([Photo, PhotoRepository], 'PhotoConnection'),
PhotoModule, UserModule,
],
(photo.module.ts) ) Соединение с БД1 - PhotoConnection зарегистрировано здесь
@Module({
imports: [
TypeOrmModule.forFeature([PhotoRepository], 'PhotoConnection'),
],
providers: [
PhotoService,
],
controllers: [PhotoController],
exports: [TypeOrmModule],
})
export class PhotoModule {}
(user.module.ts) Соединение с БД2 - здесь зарегистрировано UserConnection
@Module({
imports: [
TypeOrmModule.forFeature([UserRepository], 'UserConnection'),
],
providers: [
UserService,
],
exports: [TypeOrmModule],
controllers: [UserController],
})
export class UserModule {}
(user.repository.ts) Пользовательский репозиторий
@EntityRepository(User)
export class UserRepository extends Repository<User> {
async createUser(name: string): Promise<string> {
const user = this.create();
user.username = name;
user.salt = 'salt';
user.password = 'xxkdkdk';
user.save();
return name;
}
}
(photo.repository.ts)
@EntityRepository(Photo)
export class PhotoRepository extends Repository<Photo> {
async createPhoto(name: string): Promise<string> {
const photo = this.create();
photo.name = name;
photo.save();
return name;
}
}
Репо вводится в сервис, использующий соединение (PhotoConnection) (photo.service.ts)
export class PhotoService {
constructor(
@InjectRepository(Photo, 'PhotoConnection')
private readonly photoRepository: PhotoRepository,
) {}
, а здесь UserConnection (user.service.ts)
@Injectable()
export class UserService {
constructor(
@InjectRepository(User, 'UserConnection')
private readonly userRepository: UserRepository,
) {}
Приложение запускается нормально, но по запросу POST оно выдает ошибку ConnectionNotFoundError
(узел: 190812) UnhandledPromiseRejectionWarning: ConnectionNotFoundError: Соединение "по умолчанию" не найдено. в новом ConnectionNotFoundError (C: \ nestjs \ type-orm-dbscratch \ node_modules \ typeorm \ error \ ConnectionNotFoundError. js: 10: 28) в ConnectionManager.get (C: \ nestjs \ type-orm-dbscratch \ node_modules \ typeorm \ connection \ ConnectionManager. js: 38: 19) в Object.getConnection (C: \ nestjs \ type-orm-dbscratch \ node_modules \ typeorm \ index. js: 244: 35) в Function.BaseEntity.getRepository (C: \ nestjs \ type-orm-dbscratch \ node_modules \ typeorm \ repository \ BaseEntity. js: 67: 57) в Photo.BaseEntity.save (C: \ nestjs \ type -orm-dbscratch \ node_modules \ typeorm \ repository \ BaseEntity. js: 27: 33) в PhotoRepository.createPhoto (C: \ nestjs \ type-orm-dbscratch \ dist \ db \ photo \ photo.repository. js: 15: 15) в PhotoService.createPhoto (C: \ nestjs \ type-orm-dbscratch \ dist \ db \ photo \ photo.service. js: 24: 43) в PhotoController.addSetting (C: \ nestjs \ type-orm-dbscratch \ dist \ db \ photo \ photo.controller. js: 22: 27) в C: \ nestjs \ type-orm-dbscratch \ node_modules@nestjs \ core \ router \ маршрутизатор-исполнение -context. js: 37: 29 at process._tickCallback (internal / process / next_tick. js: 68: 7)
Я хотел бы знать, если есть проблема с Регистрация. Любая помощь будет оценена.