如何获取在localhost上运行的node.js应用程序?

时间:2016-05-29 15:06:31

标签: javascript node.js express socket.io

我使用express和socket.io创建了一个node.js聊天应用程序。它在localhost上运行,其他计算机可以在同一网络上连接到它。我怎样才能将它上网,以便不同网络上的人仍可以使用它?

这是我的package.json,以防它有所帮助:

{
  "name": "Node Chat",
  "version": "1.0.1",
  "description": "Simple chat server",
  "dependencies": {
    "express": "4.10.2",
    "socket.io": "1.2.0"
  }
}

2 个答案:

答案 0 :(得分:2)

您必须将您的应用程序放在可以通过公共IP地址从开放式互联网联系的计算机上。如果您希望能够使用http://www.example.com等网址与其联系,则需要执行以下步骤:

  1. 查找具有可公开访问的IP地址的服务器,您可以在其上运行应用程序。通常,这将是支持node.js应用程序的托管公司的服务器。

  2. 设置DNS条目以使您的域和www前缀指向包含您的服务器进程的正确IP地址。

  3. 以响应端口80请求的方式运行服务器进程。在托管公司,可能需要遵循特定的规则才能使您网域中的端口80以您希望的方式工作。

  4. 您可以从您自己的本地网络上的服务器实现这些步骤,但这通常需要一堆网络配置才能实现这些步骤。一个洞你的本地防火墙和路由端口80请求到网络上的特定服务器(通常使用端口转发),并允许外部请求到达您的专用网络上的给定服务器,它将涉及一些DNS配置允许域名请求与您的专用网络的公共IP匹配。由于各种原因,如果这是家庭网络,通常不建议使用此配置。

答案 1 :(得分:1)

由于您正在使用node.js,我希望您至少对网站有一些经验,并且您知道它们需要托管在服务器上。你可以自己做,但既然你问这个问题,我认为你没有设备来做这件事。但是,正如您的帖子评论中提到的,有几个托管节点应用程序的提供商。他们中的大多数提供有限的免费服务,如果你为你和一些朋友制作这个应用程序将完全做到这一点。这是一个简短的清单:

您可以找到扩展列表here