2016-11-24 2 views
0

Мы строим сложную систему в NodeJS, которая будет иметь ряд сегментов, которыми управляют отдельные команды, каждая из которых представляет собой единую функцию системы. Таким образом, будет одно «главное приложение», которое включает в себя каждый из этих сегментов или «модулей» в веб-интерфейс пользователя (с использованием экспресс-сервера на момент написания этой статьи).Архитектурный подход к сложной системе в NodeJS

Каждый сегмент может иметь один или несколько модулей NodeJS, и каждая команда имеет право вносить изменения в свои соответствующие сегменты, поэтому не может быть односторонних межгрупповых помех, и каждый сегмент может быть версией, протестирован и выпущен независимо от других модулей.

NodeJS является новым для нас, и мы пытаемся понять, как такой подход может быть заархивирован, поскольку, как кажется, когда вы вызываете вызов require(), чтобы включить пакет, существует основополагающее предположение о том, что существует один модуль. Итак, один из наших фундаментальных вопросов заключается в том, как вы можете включить один пакет, который позволяет создавать require() вызовы для нескольких модулей из этого пакета? Кроме того, как управлять и версировать каждый сегмент/пакет, независимо?

Кроме того, с точки зрения веб-сервера, как объединить ресурсы из различных пакетов (например, CSS, изображения и т. Д.) В браузере?

Мы ищем предложения, ресурсы, знания - возможно, даже кто-то может прийти на сайт, чтобы проконсультироваться с нами о архитектуре среды разработки и развертывания, чтобы помочь нам начать работу в правильном направлении. Любой вход оценивается. :)

ответ

0
  1. Поскольку ваша команда является новой для Node.js, то первое, что нужно сделать, это понять удивительный менеджер пакетного node.js, https://www.npmjs.com. Если вы можете понять, как они управляют пакетом/модулем в node.js, то вы получите базовую концепцию управления модулями среди вашей команды.
  2. Using package.json - хорошее начало, чтобы понять, как управлять и делиться каждым независимым модулем . Использование npm с пакетом. Json может помочь вам обрабатывать версии модуля и подмодуля, необходимые вашему приложению.
  3. Git - ваш хороший друг.
  4. Возможно, вы захотите попробовать npm Enterprise, который является решением вашего дела. Я не хотел просить вас использовать их услуги, но было бы хорошо, если бы вы знали, как это работает.
  5. статические активы (css, images и т. Д.) Должны быть в отдельном репозитории и распределены между всеми модулями, которые требуют этих активов.

Это нелегко освоить в вашем случае, но модульная модель Node.js + npm определенно должна быть хорошей для вашей команды.

0

Лучший пример, который вы можете изучить, - это экспресс-посредники, такие как body-parser. Они все были в модуле Express.

Вы назвали бы Экспресс 3.x так:

const express = require('express'); 

const app = express(); 
app.use(express.bodyParser()) 

После Express 4.х вы должны назвать так:

const express = require('express'); 
const bodyParser = require('body-parser'); 

app.use(bodyParser()) 

Из Migrating to Express 4 руководства:

Это означает, что Экспресс в настоящее время является независимым маршрутизации и промежуточного программного обеспечения веб-фреймворк, а также экспресс-версий и релизов не зависят от промежуточного программного обеспечения обновления.

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

Итак, не обращайтесь за вызовом одного модуля и доступа ко всем его дочерним элементам, но создавайте отдельные модули, которые потребуются отдельно. Это общая схема в больших модулях NodeJS.

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