【问题标题】:How can I run an independent express.js application using a 2nd node server?如何使用第二个节点服务器运行独立的 express.js 应用程序?
【发布时间】:2017-12-06 22:12:29
【问题描述】:

我想设置第二个 node.js 服务器来运行 express.js 应用程序,它是我当前 html(客户端)和 js(服务器端)文件的精确且独立的副本。

原因是我想将我当前的代码部署在一个生产环境中,该环境可供不会关闭的团队使用,而我在开发环境中处理我当前的代码。

我担心我已经将我当前的 node.js 服务器添加到我的路径中,我不确定在安装第二个 node.js 服务器后我启动第二个服务器的命令是否会干扰我的 node.js 服务器已保存在我的路径变量中。

在我提出问题之前,需要了解以下几点:

  1. 我正在使用带有 Linux 发行版的机器。
  2. 我正在使用 Express.js 路由

我正在使用说明安装另一个 node.js 和 express.js 实例:

www.vultr.com/docs/installing-node-js-and-express

我的问题如下:

  1. 这是否像按照上面链接中的说明将 node 和 express 安装到新目录并从新路径运行而不将其存储在我的路径变量中一样简单?
  2. 是否有更好、更有效的方法来创建生产和开发环境,以便我的团队可以使用我构建的应用程序而不会干扰我当前的节点实例,同时确保在生产环境中部署的应用程序 100% 正常运行?
  3. 实例化第二台服务器后,如何从终端进行调用,以免打开/关闭从路径变量运行的原始节点服务器?
  4. 考虑到上面的链接是关于如何从头开始和在 Ubuntu 中安装节点和表达的方法(我在 CentOS - Gnome 上),是否有更好的“方法”来完成第二个节点并快速安装?
  5. 在为第二个节点/express 服务器创建新端口以进行侦听时,我可以选择任何 4 位数字,还是有一组特定的数字可以更有效地使用?我已经在我的开发环境中使用 Port:3000 作为我的第一个实例。

感谢您的指导。

【问题讨论】:

  • 您的生产环境是您开发代码的同一台 PC 吗?
  • 是的,是同一台机器。
  • 你是否使用了任何形式的版本控制,比如 git?
  • 是的,我每天都将我的代码推送到 gitlabs

标签: javascript node.js linux express


【解决方案1】:

在同一台 PC 上进行开发和提供服务并不可取,但是,如果必须,您可以这样做。

首先,无需在您的机器上安装第二个 node 副本 - 您可以在同一台机器上运行 node 的多个进程而不会出现任何问题。 我建议你这样做:

  1. 如果您还没有提交,请将您的项目提交到 git 存储库中
  2. 为开发和生产创建单独的分支,如下所示:http://nvie.com/posts/a-successful-git-branching-model/#the-main-branches
  3. 每次准备发布新代码时,将其推送到主分支
  4. 将所有配置参数移动到一个配置文件中,并为开发/生产创建一个单独的,您可以使用config 包轻松做到这一点:https://www.npmjs.com/package/config
  5. 将您的存储库克隆到一个单独的文件夹,该文件夹将始终保留在主(生产)分支上
  6. 从该文件夹运行您的服务器 - 然后您的团队可以连接到它
  7. 所有开发都将在原始文件夹中完成。准备好后,推送到 master,然后拉入生产文件夹。

关于端口号,您可以使用任何高于 1024 且低于 65535 的端口号

【讨论】:

  • 谢谢丹尼尔,我整天都在研究这个解决方案,如果它成功了,就把它标记为答案。感谢您的帮助。
  • 按照你的方式去做,我认为如果我在开发过程中停止我的节点服务器那么它也会停止网站的生产是否是正确的???
  • 没有。从不同的文件夹运行您的服务器会导致在您的计算机上运行两个不同且完全独立的节点进程,因此您可以随意关闭一个而不影响另一个。最简单和最好的测试方法就是自己尝试一下,看看会发生什么
猜你喜欢
  • 2020-02-23
  • 2021-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
  • 2019-11-03
相关资源
最近更新 更多