我们正在用NodeJS构建一个复杂的系统,它将有许多由单独的团队管理的部分,每个部分代表系统的一个单一功能。因此,将有一个“主应用程序”,它将这些部分或“模块”中的每一个都包含到基于Web的UI中(在撰写本文时,使用Express服务器)。
每个细分可以有一个或多个NodeJS模块,每个团队只有权对各自的细分进行更改,因此不能存在单方面的跨团队干扰,每个细分可以独立于其他模块进行版本控制、测试和发布。
NodeJS对我们来说是新的,我们很难理解这种方法是如何架构的,因为当你调用require()来包含一个包时,有一个潜在的假设是只有一个模块。因此,我们的一个基本问题是,如何包含一个允许对该包中的多个模块进行require()调用的单个包?另外,如何独立管理和版本化每个段/包?
此外,从Web服务器的角度来看,来自各种包(如CSS、图像等)的资源是怎样的?是否合并为可从浏览器访问?
我们正在寻找建议、资源、知识-甚至可能有人来现场咨询我们关于开发和部署环境的架构-来帮助我们朝着正确的方向启动。任何意见都是值得感谢的。:)
发布于 2016-11-25 01:42:41
npm与package.json结合使用可以帮助您处理application.在您的情况下,掌握它并不容易,但Node.js + npm的模块模型绝对应该对您的团队有好处。
发布于 2016-11-26 06:04:24
你可以研究的最好的例子是Express中间件,比如body-parser。它们过去都在Express模块中。
在Express 3.x中,您可以这样调用:
const express = require('express');
const app = express();
app.use(express.bodyParser())在Express 4.x之后,您必须像这样调用:
const express = require('express');
const bodyParser = require('body-parser');
app.use(bodyParser())这意味着Express现在是一个独立的路由和中间件web框架,并且Express版本和发布不受中间件更新的影响。
如果没有内置的中间件,您必须显式地添加运行应用程序所需的所有中间件。
因此,不要去调用单个模块并访问它的所有子模块,而是创建单独的模块,这将是单独需要的。这是当今大型NodeJS模块中的常见模式。
https://stackoverflow.com/questions/40791875
复制相似问题