웹사이트 검색

node.js - express로 부트스트랩할 때 NestJS에서 WebSockets 핸드셰이크가 작동하지 않음 (여러 서버)

우리의 NestJs 서버는 HTTP를 통해 웹소켓 핸드셰이크를 완벽하게 처리하곤 했습니다. 하지만 그 후 HTTPS 지원을 추가했고, 여기서 설명된 것처럼 여러 서버 기술을 사용하여 구현했습니다: https://docs.nestjs.com/faq/multiple-servers

그렇게 한 후에, 웹소켓 핸드셰이크(업그레이드 요청)가 작동을 멈췄습니다.

웹 소켓이 작동하는 우리가 가지고 있던 NestJs 부트스트래핑은 다음과 같았습니다:

const app = await NestFactory.create(AppModule); const webSocketAdapter = new WebSocketAdapter(app); app.useWebSocketAdapter(webSocketAdapter); [...] // We initialize expres

더 많은 것을 읽으십시오 →

typescript - NestJS 가드에서 HTTP 예외를 던지기 (라이브러리 모듈로 내보내기)

저는 모듈의 일부로 가드를 포함하는 NestJS 라이브러리를 만들고 있습니다,

가드에서 HTTP 오류를 던지려고 했지만, 컨트롤러에서는 컨텍스트가 손실되어 그냥 500 오류만 발생합니다.

라이브러리를 dist 빌드 대신 소스 코드로 가져오면 잘 작동합니다.

@Injectable() export class SignedUrlGuard implements CanActivate { constructor( private readonly signedUrlService: SignedUrlService, ) { } canActivate( context: ExecutionContext, ): boolean | Promise<boolean> | Observable<boolean> { const request = context.switchToHttp().ge

더 많은 것을 읽으십시오 →

node.js - NestJs에서 모듈의 메타데이터 가져오기

그래서 현재 모듈과 그 컨트롤러들의 메타데이터를 가져와야 하는 상황을 접하게 되었습니다.

ClosedModule.ts

// all imports to AModule, BModule @Module({ imports: [ DiscoveryModule, // given by nest/core AModule, // it has a controller AController whose base path is A/ and has 1 function for @Get a1 BM

더 많은 것을 읽으십시오 →

타입스크립트 - 네스트JS에서 ES 모듈 해석

저는 서비스와 상수가 있는 두 개의 NestJS 모듈, AModule과 BModule을 가지고 있습니다.

AModule -> AService에서 저는 import { ASchemaKy } from '../const';처럼 ASchemaKey를 가져와서 생성자에서 사용합니다

import { ASchemaKey } from '../const'; export class AService { constructor(@InjectModel(ASchemaKey) private model) {} }

BModule -> BService에서 생성자 안에 AService를 가져옵니다

export class BService { constructor(private aService: AService) {} }

그리고 다음과 같은 오류가 발생했습니다

더 많은 것을 읽으십시오 →

타입스크립트 - Nestjs 검증 파이프가 Graphql에서 작동하지 않음

저는 nestJS에 새로 왔고 main.ts에 ValidationPipe()를 추가했습니다

app.useGlobalPipes(new ValidationPipe())

지금 저는 제 DTO 안에서 class-validator 데코레이터를 사용하고 있지만 지금은 아무것도 작동하지 않고 있습니다. 저는 GraphQL을 사용하고 있지만 이미 파이프를 전역적으로 구성했기 때문에 작동해야 합니다.

더 해야 할 설정이 있는데 제가 놓치고 있는 것이 있나요? 도와주세요.

더 많은 것을 읽으십시오 →

node.js - Nestjs mongoose에서 단일 필드에 여러 하위 문서 유형을 어떻게 정의할 수 있나요?

예:

export class Tracking extends BaseSchema { @Prop({ required: true, index: true }) referenceNumber: string; @Prop({ type: A.schema | B.schema | C.schema}) data: A | B | C }

여기서 A, B, C가 서로 다른 하위 문서 스키마라고 가정합니다. 하지만 레코드를 삽입할 때 A, B, 또는 C 형식의 데이터 중 하나를 가지게 될 것입니다. 이것을 어떻게 정의할 수 있나요?

나는 type: A.schema | B.schema | C.schema처럼 타입을 정의할 수 없습니다. 그리고 data: A | B | C처럼 정의할 수도 없습니다. 이것도 오류가 발생합니다.

더 많은 것을 읽으십시오 →

angular - nestjs 테스트에서 가져온 모듈에 의존성 주입하기

저는 Nestjs 앱에서 ThisModule이라고 부르는 모듈을 가지고 작업하고 있으며, 이 모듈에는 ControllerForThisModule이라는 컨트롤러와 ServiceForThisModule이라는 서비스가 있습니다. 여기서 저는 ModelForThisModule이라는 MongoDB 모델을 주입하고 있습니다. ThisModule은 또한 OtherModule이라고 부르는 다른 모듈을 임포트하며, 여기서 저는 ModelInOtherModule이라는 모델을 주입하고 있습니다. 이제 테스트를 실행할 때 아래와 같은 오류가 발생합니다.

Nest can't resolve dependencies of the ModelInOtherModule (?). Please make sure that the argument DatabaseConnection at index [0] is available in the MongooseModule context. Potent

더 많은 것을 읽으십시오 →

typescript - Nestjs, 나는 모듈의 정적 함수에서 내 환경 변수를 접근할 수 없습니다

저는 Nest.js로 동적 모듈을 만들고 싶습니다. 이 모듈은 이 함수에서 초기화된 변수를 애플리케이션의 나머지 부분에서 제공하는 것을 목표로 합니다.

이 변수는 내 환경 변수에 따라 초기화되어야 하며, 내 프로젝트의 .env 파일에 저장되어 있습니다.

서비스에서 접근하려고 하면 문제가 없습니다 (process.env와 ConfigModule 주입과 함께).

하지만 내가 정적 함수 forRoot에서 그것을 수행하고 싶을 때, 문제의 환경 변수는 null입니다.

.env 파일

더 많은 것을 읽으십시오 →

타입스크립트 - NestJS에서 단일 테이블 상속의 여러 자식과의 관계

요약:

저는 동일한 테이블을 상속하는 여러 엔티티와 단일 관계를 만들고 싶습니다. 그렇게 하려면 관계에 참여하는 엔티티를 지정해야 하고, 여러 개를 지정하고 싶습니다. 지정된 타입이 동일한 테이블을 상속하더라도 여러 타입과의 관계는 불가능한 것 같습니다. 이것이 가능할까요, 가능하다면 제가 무엇을 잘못하고 있는 걸까요?

전체 설명:

저는 기본 엔터티로 Task 엔터티를 가지고 있습니다. 이 질문의 목적상, 따라가기가 쉽도록 대부분의 불필요한 열은 제거할 것입니다.

import { Column, Entity, TableInheritance } from 'typeorm'; @Entity('tasks') @TableInheritance({ column: { type: 'varchar', name: 'type' } }) export class Task

더 많은 것을 읽으십시오 →

javascript - NestJS에서 XLSX 응답을 어떻게 반환할 수 있나요?

저는 Nodejs/NestJs로 작업하고 있으며, 현재 xlsx 파일을 생성하려고 하고 있습니다(이 시점에서는 제 코드가 정확한지 확실하지 않습니다). 이제 이 파일을 응답으로 보내고 싶지만, 어떻게 수행해야 할지 모르겠습니다. @Res 데코레이터에 대해 읽어보았지만, 응답에 파일을 첨부하는 방법에 대한 자료는 찾지 못했습니다. 혹시 아이디어가 있으신가요? 감사합니다 :)

서비스 :

downloadFile(file: number) { this.files .findOne({ attributes: ['content'], where: { id: file }, }) .then((response) => { const book: XLSX.WorkBook = XLSX.read(response.content, { type: 'base6

더 많은 것을 읽으십시오 →