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または多くのプラグインかもしれません。理想的には私はあなたがリスナーがあることを保証することはできませんので、メインのアプリにプラグイン/ミドルウェア管理のために持つEventEmitterを使用して
多くのおかげ