Структура Node.js приложения

Существует множество возможных способов организации Node.js-проектов и каждый из известных методов имеет свои плюсы и минусы:

  • Организация файлов по функционалу (REST-ресурсам):

.
├── product
|   ├── index.js
|   ├── product.js
|   └── product.hbs
├── user
|   ├── index.js
|   ├── user.js
|   └── user.hbs

Недостатки:

  • Иногда довольно таки сложно решить, в какой папке должен быть тот или иной файл

Преимущества:

  • Чтобы добавить новый функционал или понять суть работы product, вам достаточно будет работы с файлами одного каталога product

  • большинство путей подключения файлов достаточно короткие require( './product.js')

  • Организация файлов по ролям

.
├── controllers
|   ├── product.js
|   └── user.js
├── models
|   ├── product.js
|   └── user.js
├── views
|   ├── product.hbs
|   └── user.hbs

Недостатки:

  • Чтобы понять, как работает страница product или добавить новый функционал в product, вам нужно открыть три различных каталоги с большим количеством файлов

  • длинные пути для подключения модулей: require('../../controllers/product.js')

Преимущества:

  • При добавлении новых файлов у вас не возникает вопросов по тому, куда стоит их добавлять

Одна из возможных реализаций структуры файлов в Node.js

Last updated