Как создать пользовательский прослушиватель событий в node.js (express.js)? - PullRequest
10 голосов
/ 21 апреля 2011

У меня есть гигантская функция с множеством вложенных обратных вызовов.Я хочу сделать его чище и проще в обращении.Итак, я подумываю об использовании пользовательских прослушивателей событий

Например, когда функция выполняется, в обратном вызове вместо помещения фрагмента кода она просто генерирует событие, а затем слушатель запускается.

Итак, как это сделать в node.js?Я все еще ищу хороший пример, чтобы помочь мне.

Ответы [ 3 ]

21 голосов
/ 07 мая 2012

Вы можете установить события, подобные этому

app.on('event:user_created', callback);

Тогда вы можете испустить их

app.emit('event:user_created', data);

express.js использует EventEmitter.

7 голосов
/ 25 апреля 2011

Возможно, вы захотите создать объект EventEmitter и вызвать на нем emit().

4 голосов
/ 28 декабря 2015

Я только что натолкнулся на этот вопрос, я хотел бы скинуть свои 2 цента, особенно отвечая Луису.

В Express, если вы хотите, чтобы экземпляр приложения просматривал пользовательское событие, вы должны сделать что-то вроде:

app.on('testEvent', function () {
  return console.log('responded to testEvent');
});

app.get('/test', function (req, res) {
  app.emit('testEvent');
  return res.status(200).end();
});

Тогда, когда этот маршрут будет пройден, вы увидите ответ в консоли. Конечно, вы можете реализовать это как хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...