【问题标题】:Separating Node.js applications into multiple将 Node.js 应用程序分成多个
【发布时间】:2018-02-22 05:11:17
【问题描述】:

所以我很愚蠢,没想到我将整个应用程序前后构建在一个 Node.js 应用程序实例上。现在我必须弄清楚如何让每件事都成为自己的服务。我当前的应用程序有前端(主站点)、前端(应用程序/软件部分)和后端。我需要弄清楚如何最好地将它们分为前端/主、身份验证、前端/应用和后端/应用

我该怎么做呢?我会发布代码示例,但我确信这太长了,并且不会让我感谢这里的代码与单词比率。 git repo 也不是公开的,所以不能发布。

我的堆栈是 mongo、node.js 和 express,我也在使用 passport.js。

【问题讨论】:

  • 首先,为什么需要将每个服务拆分成自己的服务?你想通过这样做来实现什么目标?那么,了解多进程架构的一个早期部分是了解哪些数据需要由哪些部分访问,哪些数据需要共享?在你的问题中,我们真的没有太多可以继续讨论的问题,你应该如何构建它,甚至你想要通过拆分它来完成什么。

标签: node.js mongodb web-applications passport.js microservices


【解决方案1】:

简短的回答可能是将部分逻辑分解为模块,然后在需要的地方使用它们。

在不知道您的代码是如何组织的情况下,这里有一个简单的示例,可能会让您朝着正确的方向前进。

之前

index.js

// index.js
'use strict';

const answer = 42;
const run = (output) => console.log(`Inside: run() - ${output}`);

run(answer); // Inside: run() - 42

之后

index.js

// index.js
'use strict';

const process = require('./modules/process');
const answer = 42;

process.run(answer); // Inside: process.run() - 42

modules/process.js

// modules/process.js
'use strict';

const run = (output) => console.log(`Inside: process.run() - ${output}`);

module.exports = { run };

步骤

  1. 创建模块文件。一种选择是创建一个modules 文件夹并将模块文件放入其中。
  2. 在原始index.js 文件的顶部添加require 语句。
  3. 在新的模块文件中,移动一个函数。
  4. 将函数添加到module.exports
  5. 更改调用以使用模块版本。

指针

  • 小步骤:一次移动一个函数,并确保在移动下一个函数之前没有损坏任何东西。
  • 试一试:组织代码有很多变体和方法。不要太害怕你会“做错事”。

【讨论】:

  • 这听起来更像是将代码分解成模块的练习,这些模块仍然在同一个进程中运行。我认为这不是 OP 所要求的。
  • @jfriend00 你是对的。这是一个将代码分解为模块的练习。正如您在上面评论的那样,尚不清楚 OP 的目标是什么。即使他们打算制作完全独立的服务,听起来他们也需要分解代码。
猜你喜欢
  • 2017-11-10
  • 2010-09-12
  • 2021-03-23
  • 2022-09-27
  • 2013-09-02
  • 2015-12-05
  • 2020-09-20
  • 1970-01-01
  • 2014-11-02
相关资源
最近更新 更多