Express와 함께 NodeJS로 작성된 응용 프로그램을 가지고 있으며 EventEmitter를 사용하여 방출 된 이벤트를 수신하여 기본 코드에 플러그인하는 플러그인으로 일종의 플러그인 아키텍처를 만들려고합니다.NodeJS는 이벤트 발생시 콜백 대기 완료
플러그인 기능이 비동기 요청 (이 경우에는 mongo에서 데이터 가져 오기)을하면 플러그인 코드가 완료되고 비동기 요청 전에 실행을 완료 할 원래 이미 터로 제어가 되돌아갑니다 플러그인 코드에서 완료됩니다.
예 :
메인 응용 프로그램 :
// We want to modify the request object in the plugin
self.emit('plugin-listener', request);
플러그인 :
는// Plugin function listening to 'plugin-listener', 'request' is an arg
console.log(request);
// Call to DB (async)
this.getFromMongo(some_data, function(response){
// this may not get called until the plugin function has finished!
}
'getFromMongo'기능에서 주요 코드로 다시 콜백 함수를 피하기위한 나의 이유는이 0 또는 이벤트를 수신하는 많은 플러그인 일 수 있습니다. 이상적으로는 DB 물건
많은 감사 플러그인에 대한 EventEmitter를 사용