首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS中复杂系统的体系结构方法

NodeJS中复杂系统的体系结构方法
EN

Stack Overflow用户
提问于 2016-11-25 01:17:39
回答 2查看 288关注 0票数 0

我们正在用NodeJS构建一个复杂的系统,它将有许多由单独的团队管理的部分,每个部分代表系统的一个单一功能。因此,将有一个“主应用程序”,它将这些部分或“模块”中的每一个都包含到基于Web的UI中(在撰写本文时,使用Express服务器)。

每个细分可以有一个或多个NodeJS模块,每个团队只有权对各自的细分进行更改,因此不能存在单方面的跨团队干扰,每个细分可以独立于其他模块进行版本控制、测试和发布。

NodeJS对我们来说是新的,我们很难理解这种方法是如何架构的,因为当你调用require()来包含一个包时,有一个潜在的假设是只有一个模块。因此,我们的一个基本问题是,如何包含一个允许对该包中的多个模块进行require()调用的单个包?另外,如何独立管理和版本化每个段/包?

此外,从Web服务器的角度来看,来自各种包(如CSS、图像等)的资源是怎样的?是否合并为可从浏览器访问?

我们正在寻找建议、资源、知识-甚至可能有人来现场咨询我们关于开发和部署环境的架构-来帮助我们朝着正确的方向启动。任何意见都是值得感谢的。:)

EN

回答 2

Stack Overflow用户

发布于 2016-11-25 01:42:41

  1. 由于您的团队是node.js的新手,因此首先要做的是了解node.js的强大包管理器https://www.npmjs.com。如果你能理解他们是如何在node.js中管理包/模块的,那么你就会得到在你的team.
  2. Using package.json中管理模块的基本概念,这是理解如何管理和共享每个独立模块的一个很好的开始。将npm与package.json结合使用可以帮助您处理application.
  3. Git所需的模块和子模块的版本。
  4. 您可能想尝试npm Enterprise,这是针对您的情况的解决方案。我并不是要您使用他们的服务,但如果您知道如何将works.
  5. static资产(css、图像等)放在单独的存储库中,并在需要这些资产的所有模块之间进行共享,这对您的团队会很有好处。

在您的情况下,掌握它并不容易,但Node.js + npm的模块模型绝对应该对您的团队有好处。

票数 0
EN

Stack Overflow用户

发布于 2016-11-26 06:04:24

你可以研究的最好的例子是Express中间件,比如body-parser。它们过去都在Express模块中。

在Express 3.x中,您可以这样调用:

代码语言:javascript
复制
const express = require('express');

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

在Express 4.x之后,您必须像这样调用:

代码语言:javascript
复制
const express = require('express');
const bodyParser = require('body-parser');

app.use(bodyParser())

来自Migrating to Express 4指南:

这意味着Express现在是一个独立的路由和中间件web框架,并且Express版本和发布不受中间件更新的影响。

如果没有内置的中间件,您必须显式地添加运行应用程序所需的所有中间件。

因此,不要去调用单个模块并访问它的所有子模块,而是创建单独的模块,这将是单独需要的。这是当今大型NodeJS模块中的常见模式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40791875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档