영상을 멈추고 한번 풀어 보았습니다.
253
작성한 질문수 138
//query-runner.decorator.ts
import {
ExecutionContext,
InternalServerErrorException,
createParamDecorator,
} from '@nestjs/common';
import { QueryRunner } from 'typeorm';
export const QueryRunnerDecorator = createParamDecorator(
(data: unknown, context: ExecutionContext): { qr: QueryRunner } => {
const req = context.switchToHttp().getRequest();
if (!req.queryRunner) {
throw new InternalServerErrorException('queryRunner가 없습니다.');
}
return {
qr: req.queryRunner,
};
},
);
//posts.controller.ts
@Post()
@UseGuards(AccessTokenGuard)
@UseInterceptors(TransactionInterceptoer)
async postPosts(
@User('id') userId: number,
@Body() body: CreatePostDto,
@QueryRunnerDecorator() qr: QueryRunner,
) {
.... 중략
}트랜잭션을 interceptor로 관리하는것을 배워서 너무 유익하고 100점 만점의 100점 꿀팁이었습니다.
https://www.npmjs.com/package/typeorm-transactional
해당 라이브러리를 원래 사용 했으나, 마음에 들지 않았었는데 덕분에 interceptor로 대체 할 수 있을것 같습니다 좋은 강의 만들어 주셔서 감사합니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
rhkdtjd_12님, 트랜잭션 관리에 대한 실습 과정에서 유익한 정보를 얻으신 것 같아 기쁩니다.
NestJS와 TypeORM을 활용한 TransactionInterceptor의 구현 방법을 배운 것은,
프로젝트에서 트랜잭션을 보다 세련된 방법으로 관리할 수 있는 좋은 시작점이 될 것입니다.
제공해주신 코드에서 사용된 @QueryRunnerDecorator는 커스텀 데코레이터를 통해 현재 요청의 queryRunner를
가져오는 예제로 보입니다. 이러한 방식은 코드의 중복을 줄이고, 체계적인 트랜잭션 관리로 이어질 수 있습니다.
또한 언급해주신 ‘typeorm-transactional’ 라이브러리 대신 인터셉터를 활용하게 되신 것에 만족하신 듯 하여 기쁩니다.
앞으로도 NestJS를 활용한 백엔드 개발에서 깊이 있는 지식과 실질적인 팁들을 많이 얻으시길 바랍니다.
감사합니다!
cascade 질문
0
40
1
@types/bcrypt 설치과정이 누락된것같습니다.
0
49
1
process.env port key 에러
0
47
1
추상화
0
50
1
[공유] DTO optional 필드가 undefined로 잡혀 TypeORM 조건이 깨지는 현상
0
101
2
where 키워드가 들어가는 메서드와 아닌 메서드
0
57
1
BearerTokenGuard에서 db를 조회해서 유저 정보를 불러오는 이유?
0
72
1
app.controller app.service 는 지워도되나요?
0
70
1
@JoinColumn을 쓰는 경우와 안쓰는 경우의 차이
0
79
1
포트 3000에서 listen하는 곳까지 넘어가지 않습니다.
0
68
1
PickType 사용 시 `as const`를 꼭 사용해야 하나요?
0
103
2
socket connect 오류
0
98
2
강의를 들으면서 궁금한 점
0
97
2
DELETE 요청의 반환값은 어떤 기준으로 결정하는 게 좋을까요?
0
60
2
커리큘럼 질문
0
100
2
put 요청은 언제
0
90
3
typeorm VS prisma
0
351
2
142 강의 > 4:00 > 포스트멘 활용 관련 질문 드립니다.
0
78
2
User 데코레이터 버그 수정 전달드립니다.
0
67
1
git 주소 부탁드립니다.
0
113
2
nest g resource 명령어 에러
0
99
2
로그인 엔드포인트 관련 질문
0
85
2
yarn으로 express 다운 후 node 2_server.js 실행 안되는 경우
0
148
3
"흔히 사용되는 메서드" 강의 관련 질문입니다~
0
95
2





