Взгляните на модуль апостроф-экспресс, который устанавливает приложение экспресс. Объект сервера доступен как apos.modules ['апостроф-экспресс']. Сервер. Это устанавливается довольно поздно в процессе запуска, потому что, как только он там, соединения могут начать входить. Один хороший момент для доступа к нему - обратный вызов afterListen: function (err) {...} прямо в app.js. Обратите внимание, что если присутствует ошибка, он не прослушивается успешно, и поскольку вы предоставили функцию afterListen, вы несете ответственность за выход.
Таким образом, ваш код может выглядеть так:
// in app.js
afterListen: function(err) {
if (err) {
console.error(err);
process.exit(1);
}
var io = require('socket.io')(apos.modules['apostrophe-express'].server);
}
Проблематично, что мы не генерируем событие обещания для afterListen
, поэтому вы застряли, делая это с обратным вызовом в app.js
вместо добавления прослушивателя событий в вашем собственном модуле, который структурировал бы ваш код лучше. Однако вы можете вызвать метод в одном из ваших собственных модулей из afterListen
. На этом этапе инициализации мы рассмотрим добавление события обещания.