2016-06-20 5 views
0

Я использую app.listen(PORTNO) для запуска моего экспресс-приложения.Экспресс работает на двух портах, даже если порт указан

Он работает на 127.0.0.1:PORTNO, но и на 127.0.0.1:3000

3000 является портом по умолчанию нет, на котором не выражают прогонов из коробки.

Почему это неожиданное поведение?

Я попытался установить ENV переменного производство, а также с помощью http.createServer(app).listen(PORTNO);

Я генерация моих файлов экспресса-приложения с помощью express-generator.

Я на окна машины, если ее соответствующим

UPDATE: Я запустить сервер с помощью npm start, который работает bin\www, и он указывает порт для запуска сервера. Но это не объясняет привязку к двум портам: тот, который указан в app.js, а другой в bin\www для того же приложения, и приложение доступно из обоих.

Можете ли вы объяснить, почему?

+0

Можете ли вы предоставить более подробную информацию, например, код, в котором вы создаете сервер. Убедитесь, что все предыдущие экземпляры убиты, прежде чем вы начнете новый экземпляр, чтобы быть уверенным. –

+0

Только что обновил вопрос. Код генерируется с кодом скелет-кода экспресс-генератора только с незначительной модификацией для установки порта. Также я убил весь экземпляр и попытался – avck

+0

'экспресс-генератор' не помещает' app.listen() 'в' app.js ', поэтому это то, что было добавлено впоследствии. – robertklep

ответ

0

Вы должны запустить свой сервер с помощью node.js (имя файла). Попробуйте это, если это поможет, так как при запуске с npm он получит настройки по умолчанию. И более того, команда npm используется для установки модулей узла (в основном), а не для запуска сервера.

+0

'node app.js' выхода без запуска сервера. Я задавался вопросом, почему это происходит, не могли бы вы объяснить, почему? – avck

+0

Это может случиться, так как порт, который вы пытаетесь запустить, уже запускает тот же экземпляр app.js. или порт уже привязан к некоторому приложению. Итак, теперь вы знаете, что ваш app.js не работает. Убейте все экземпляры снова, а затем повторите попытку запуска узла app.js. Это может помочь! –

+1

'node app.js' ничего не сделает, поскольку это модуль. Если вы посмотрите на исходный код 'bin \ www', вы увидите, что в нем загружается' app.js', а функция 'listen' вызывается в' bin \ www'. –

Смежные вопросы