Как запустить функцию при запуске сервера Express? - PullRequest
19 голосов
/ 20 марта 2012

Я не могу понять, как заставить мой экспресс-сервер запускать простую функцию при запуске сервера.Где подходящее место для вызова функции для запуска при запуске сервера и правильный синтаксис?

У меня есть функция в моем файле маршрутов как exports.myFunction = function() { code here};

Я пытался прикрепить еев блоке app.configure, как rout.myFunction.Я попытался изменить его в маршрутах на myfunction() { code}, а затем вызвать его в блоке настройки как routes.myfunction(), но и там не повезло.Функция должна оставаться в файле, содержащем мои маршруты, поскольку она изменяет некоторые глобальные переменные там.

Я знаю, что это какая-то глупо простая синтаксическая вещь, но я не могу найти никаких подсказок здесь или в Google.Большое спасибо за любую помощь!

Ответы [ 2 ]

29 голосов
/ 20 марта 2012

Используйте это событие:

app.on('listening', function () {
    // server ready to accept connections here
});

Если честно, app, возвращаемое функцией express.createServer (), является просто http.Server, поэтому все, что описано в документах nodejs, относится к http.Server имеет смысл для экспресс и railwayjs .

12 голосов
/ 20 марта 2012

Я бы сказал проще.В модуле, где вы вызываете app.listen(port), просто вызовите функцию запуска прямо перед (или после) этим.Если вам нужно, чтобы эта функция находилась в отдельном модуле, полном других маршрутов, просто экспортируйте ее, чтобы ваш главный server.js модуль мог вызывать ее при запуске.Если вы все еще не удовлетворены этим, подумайте о том, возможно, связать прослушиватель событий где-нибудь в Express / Connect, хотя я не уверен, что генерируется явное событие «запуска».

В server.js (или любом другом модулеВы запускаете свой экспресс-сервер), сделайте это:

var myRoutes = require("./myroutes");
var app = express.createServer();
...
app.listen(8080, "127.0.0.1", function() {
  myRoutes.myFunction();
});

Вы также можете привязать к событию «прослушивания», как говорит @Anatoly. документы для прослушивания событий здесь .

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