Зачем использовать bin/www, а не index.js?

Инструмент express-generator создает файл с именем bin/www и использует его в качестве основной точки входа в приложение. Кажется, я видел пару других модулей, которые делают то же самое, но подавляющее большинство просто использует index.js.

В чем причина этого? Я конечно понимаю, почему вы разделили сервер и код для настройки программы на отдельные модули, но почему bin/www, а не index.js? Зачем вкладывать основную точку входа в программу на уровне два глубже, чем материал звонки? А также удалить расширение файла, сделав его еще менее описательным?

Есть ли за этим умная, неочевидная причина? Должен ли я использовать это и для своих узловых модулей?

Спасибо!

[редактировать]:

Все хорошие ответы, спасибо, ребята! Я принял вариант, указывающий, что это стандартное поведение для пакетов, содержащих исполняемые файлы. Вот еще несколько чтений, которые я наткнулся на это:

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
1 849
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы привыкли работать npm run, но не сисадмином. Он будет искать исполняемые файлы (атрибут x) в каталоге bin.

Точка входа index.js предназначена для модуля узла. Все пакеты, которые предоставляют команды для запуска на консоли, содержат каталог bin.

Расширение удалено, потому что это не скрипт, а программа. И у них нет расширений.

экспресс-генератор создает базовую структуру для приложения выражать. По соглашению точкой входа приложения является index.js или app.js. Фактически экспресс-генератор создает app.js в корне приложения с начальной настройкой выражать.

Кроме того, по соглашению каталог bin/ используется для двоичных файлов и, как расширение, для сценариев, которые вы можете запускать напрямую (обратите внимание на шебанг в первой строке файла www). В Linux распространено то, что двоичный файл не имеет расширения, и это может объяснить выбор сохранения этой привычки для этого файла.

www, опять же по соглашению, используется для именования веб-приложений (например, /var/www/html на сервере Апачи)

Во всяком случае, как говорится в документации,

The app structure created by the generator is just one of many ways to structure Express apps. Feel free to use this structure or modify it to best suit your needs.

См. также этот ответ, который рассказывает об основной структуре выражать между версиями 3 и 4 с удалением внешнего модуля.

Другие вопросы по теме