Lifecycle Events
Lifecycle Events
모든 응용 프로그램 요소에는 Nest에서 관리하는 수명주기가 있습니다. Nest는 수명 후크를 제공하여 주요 수명 순간에 대한 가시성과 발생시 행동 할 수있는 기능을 제공합니다.
Lifecycle sequence
생성자를 호출하여 인젝터블/컨트롤러를 생성한 후 Nest는 특정 순간에 다음 순서로 라이프 사이클 후크 메소드를 호출합니다.
OnModuleInit
호스트 모듈이 초기화되면 호출
OnApplicationBootstrap
응용 프로그램이 완전히 시작되고 부트 스트랩되면 호출됩니다.
OnModuleDestroy
Nest가 호스트 모듈을 파괴하기 직전에 정리 (app.close()
메소드가 평가되었습니다)
OnApplicationShutdown
시스템 신호에 응답합니다 (예:SIGTERM
에 의해 응용 프로그램이 종료된 경우)
Usage
각 수명주기 후크는 인터페이스로 표시됩니다. 인터페이스는 TypeScript 컴파일 후에는 존재하지 않기 때문에 기술적으로 선택 사항입니다. 그럼에도 불구하고 강력한 타이핑 및 편집기 툴링의 이점을 얻으려면 사용하는 것이 좋습니다.
또한 OnModuleInit
및 OnApplicationBootstrap
후크를 사용하면 응용 프로그램 초기화 프로세스를 연기할 수 있습니다 ( Promise
를 반환하거나 메소드를 async
로 표시).
OnApplicationShutdown
OnApplicationShutdown
은 시스템 신호에 응답합니다 (예: SIGTERM
에 의해 어플리케이션이 종료 될 때). 이 후크를 사용하여 Nest 애플리케이션을 정상적으로 종료하십시오. 이 기능은 종종 Kubernetes, Heroku 또는 유사한 서비스와 함께 사용됩니다.
이 후크를 사용하려면 종료 신호를 수신하는 리스너를 활성화해야합니다.
응용 프로그램이 신호를 수신하면 해당 신호를 첫 번째 매개 변수로 사용하여 Injectable
의 onApplicationShutdown
기능을 호출합니다. 함수가 약속을 반환하면 약속이 해결되거나 거부 될 때까지 Nest 응용 프로그램이 종료되지 않습니다.
Last updated