Обучение node.js/express.js: Какая сделка с bin/www?

Я видел учебники для express.js, такие как this, которые начинаются с нуля с помощью собственного файла app.js и не используются с помощью экспресс генератор.

Мой вопрос: для начинающего, который пытается понять, как использовать эти инструменты и создавать базовое веб-приложение, должен ли я быть связан с bin/www или должен ли я просто определять порт в app.js?

Единственная функциональность, которую я сейчас понимаю в bin/www, - это установка порта. Является ли экспресс-генератор просто раздутым с функциональностью краевого случая, что слишком много для новичка?

Ответ 1

Вот причина, изложенная красноречивым сопровождающим:

Таким образом, вы можете потребовать ('./app') из внешних файлов и получить экспресс приложение, которое не прослушивает какой-либо порт (думаю, блок-тесты и т.п.).

источник

Ответ 2

app.js

  • содержит все промежуточное ПО (body-parser, morgan и т.д.) и маршруты.
  • он экспортирует объект приложения в последний раз.

WWW

  • здесь он создает httpServer и передает приложение в качестве обработчика

var server = http.createServer(app);

  • помимо этого также устанавливает порт server.listen(port);
  • также устанавливает функции, вызываемые при возникновении ошибки при запуске сервера: server.on('error', onError);

Объяснение, поэтому, в основном, он удаляет весь код создания и запуска сервера из приложения app.js и позволяет вам сосредоточиться только на логической части приложения. Примечание: Если вы видите в файле package.json, вы должны отметить это:

"scripts": {
  "start": "node ./bin/www"
}

это означает, что если вы введете терминал npm start, то он автоматически запустит файл ./bin/www.