TypeORM과 함께 작동하는 일반 BaseService 생성
요구 사항
Javascript's Mixin
기본 서비스 설계
import { EntityTarget, Repository, DataSource } from 'typeorm';
export const BaseDomainService = <T>(entity: EntityTarget<T>) => {
class DomainServiceMixin {
protected repository: Repository<T>;
constructor(ds: DataSource) {
this.repository = ds.getRepository(entity);
}
};
return DomainServiceMixin;
}
tsconfig.json이 켜지지 않는지 확인하십시오declaration
옵션.
도메인에서 상속
예를 들어 소스에 사용자 및 게시물 도메인이 있으므로 아래 설명과 같이 각 도메인에 대한 서비스를 간단하게 만들 수 있습니다.
사용자 서비스
import { BaseDomainService } from 'basedomainservicepath';
import { User } from 'typeorm user entity paths';
export class UserService extends BaseDomainService(User) {
async getAllUser(): Promise<User[]> {
return await this.repository.find();
}
//...
}
우편 서비스
import { BaseDomainService } from 'basedomainservicepath';
import { Post } from 'typeorm post entity paths';
export class PostService extends BaseDomainService(Post) {
async deletePostById(id: number): Promise<boolean> {
const result = await this.repository.delete(id);
return !!result.affected;
}
//...
}
결론
이러한 방식으로 기본 서비스를 구현하면 각 도메인 서비스에 대한 구현 구조 반복을 방지할 수 있습니다.
다음 게시물에서는 awilix , tsyringe 등과 같은 다른 DI 패키지와 함께 사용하는 방법을 보여 드리겠습니다.
Reference
이 문제에 관하여(TypeORM과 함께 작동하는 일반 BaseService 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/bcnguyen/create-generic-baseservice-working-with-typeorm-gf7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import { EntityTarget, Repository, DataSource } from 'typeorm';
export const BaseDomainService = <T>(entity: EntityTarget<T>) => {
class DomainServiceMixin {
protected repository: Repository<T>;
constructor(ds: DataSource) {
this.repository = ds.getRepository(entity);
}
};
return DomainServiceMixin;
}
예를 들어 소스에 사용자 및 게시물 도메인이 있으므로 아래 설명과 같이 각 도메인에 대한 서비스를 간단하게 만들 수 있습니다.
사용자 서비스
import { BaseDomainService } from 'basedomainservicepath';
import { User } from 'typeorm user entity paths';
export class UserService extends BaseDomainService(User) {
async getAllUser(): Promise<User[]> {
return await this.repository.find();
}
//...
}
우편 서비스
import { BaseDomainService } from 'basedomainservicepath';
import { Post } from 'typeorm post entity paths';
export class PostService extends BaseDomainService(Post) {
async deletePostById(id: number): Promise<boolean> {
const result = await this.repository.delete(id);
return !!result.affected;
}
//...
}
결론
이러한 방식으로 기본 서비스를 구현하면 각 도메인 서비스에 대한 구현 구조 반복을 방지할 수 있습니다.
다음 게시물에서는 awilix , tsyringe 등과 같은 다른 DI 패키지와 함께 사용하는 방법을 보여 드리겠습니다.
Reference
이 문제에 관하여(TypeORM과 함께 작동하는 일반 BaseService 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/bcnguyen/create-generic-baseservice-working-with-typeorm-gf7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(TypeORM과 함께 작동하는 일반 BaseService 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bcnguyen/create-generic-baseservice-working-with-typeorm-gf7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)