Подтвердить что ты не робот

Соглашения для app.js, index.js и server.js в node.js?

В node.js, кажется, я нахожусь в те же 3 имени файла, чтобы описать главную точку входа в приложение:

  • При использовании пакета express-generator в качестве основной точки входа для результирующего приложения создается файл app.js.
  • При создании нового файла package.json через npm init запрашивается файл основной точки входа. Значение по умолчанию задано как index.js.
  • В некоторых программах, которые я видел, server.js также служит основной точкой входа.

В других случаях все еще кажется, что есть тонкие различия в их использовании. Например, эта структура каталогов приложений node использует index.js и server.js в разных контекстах:

app
  |- modules
  |    |- moduleA
  |    |    |- controllers
  |    |    |    |- controllerA.js
  |    |    |    +- controllerB.js
  |    |    |- services
  |    |    |    +- someService.js
  |    |    +- index.js <--------------
  |    +- index.js <-------------------
  |- middleware.js
  +- index.js <------------------------
config
  +- index.js <------------------------
web
  |- css
  |- js
server.js <----------------------------

В чем заключаются различия между этими тремя именами?

4b9b3361

Ответ 1

Где я работаю, мы действительно не соглашались на формат, поэтому у нас есть некоторые приложения с index.js, некоторые с server.js. Кроме того, у некоторых у нас есть файл config.js на корневом уровне, другие находятся в папке config (поэтому require (config/config.js). У нас даже есть тот, где server.js находится в папке сервера.

Проблема возникает, когда мы хотим автоматизировать процесс развертывания. Это становится как технический долг, когда мы должны сделать кучу незначительных изменений для каждой службы.

Тем не менее, выберите формат, который имеет смысл для вас и придерживаться его.

Ответ 2

На самом деле все это просто имена, и вы должны быть последовательны в своей работе, как указано в @Oka в предыдущем ответе.

Единственная действительная точка здесь заключается в том, что модульная природа node может сыграть важную роль в вашем решении, как указано в Папки в качестве модулей в документации NodeJS есть 3 способа, в которых папка может быть передана require() в качестве аргумента, а вторая и общая - автоматически загружать файл index.js из папки, именно так построено много пакетов NPM, а также просто и стандартно в соответствии с автоматической загрузкой функции NodeJS. Это лучший выбор, если вы разрабатываете пакет NPM.

В конце концов, как указывали другие, вы можете выбрать любой из трех или даже еще один, но придерживайтесь своего решения. Мое решение состояло в том, чтобы всегда использовать index.js на основе упомянутого выше факта.