向世界展示你的本地 Node.js 应用

发布日期:2026-07-12 19:07:03   来源 : 杭州电子商务研究院    浏览量 :20
杭州电子商务研究院 发布日期:2026-07-12 19:07:03  
20

介绍

在本指南中,我们将回顾三项服务,以向全世界展示您的本地 Node.js 应用程序:

这在以下情况下很有用:

  • 当远程服务需要调用您的应用程序而您不想(或不能)将您的应用程序部署到公共服务器时。
  • 为了调试目的,最好将所有内容保留在本地。
  • 当您测试移动应用程序并希望将本地服务器公开为后端时。
  • 当您想向世界另一端的客户/用户快速演示您的应用程序时。
  • 当您想要公开某些内容时,例如来自私人网络的电子邮件服务器或文件存储库。

话虽如此,我们将使用 Hello World Express 应用程序快速查看每个选项。

index.js文件

      const express = require("express");
const app = express();

app.get("/", (req, res) => res.send("Hello World!"));

app.listen(3000, () => console.log("Server listening on port 3000!"));
    

package.json文件

      {
  "name": "hello",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "4.14.0"
  }
}
    

如果您想跳过此步骤并直接进入比较表,请单击此处

本地隧道

这是您可以用来向世界展示本地应用的最简单的服务。用作者的话来说,它是为了轻松创建无需设置的隧道而编写的,首先是一个库,其次是一个CLI工具。

不要将它与原始的 localtunnel混淆,显然,后者已因 ngrok 而停止使用。

localtunnel 以 npm 包的形式提供,因此您可以使用以下命令安装它:

      npm install -g localtunnel
    

从任意目录执行lt命令:

      lt --port 3000
    

这将在端口 3000 上设置到本地服务器的隧道,并为您提供一个公共 URL,即使您重新启动或停止服务器,该 URL 仍将保持活动状态:

默认情况下,URL 的域名为localtunnel.me,子域名由随机字符组成。每次重新运行该过程时,此 URL 都会发生变化。

但是,你可以使用选项--subdomain请求子域名(假设可用)。例如:

      lt --port 3000 --subdomain hello
    

在浏览器中:

如前所述,localtunnel 也可以用作库。例如:

      const localtunnel = require('localtunnel');

const tunnel = localtunnel(port, { subdomain: 'hello'} (err, tunnel) => {
    ...
});

tunnel.on('close', function() {
    // When the tunnel is closed
});

...

tunnel.close();
    

恩格罗克

Ngrok是所有这些服务中最受欢迎的。与 localtunnel 一样,ngrok 会在您的机器上创建一条通往本地服务器的安全隧道。

Ngrok 是用 Go 构建的,因此它为每个主要平台提供了二进制包。您只需下载一个 ZIP 文件,解压缩,然后从命令行运行它。

这是推荐的安装方式,但是,还有一个用于 ngrok 的 Node.js 包装器,可以下载适合您平台的 ngrok 二进制文件。

要从解压后的目录中执行 ngrok,请运行以下命令:

      ./ngrok http 3000
    

它将在端口 3000 上启动到本地计算机的安全隧道,并在终端中显示带有公共 URL 和其他信息的 UI:

在浏览器中:

Ngrok 还提供了一个 UI 来检查隧道的所有HTTP 流量。只需打开浏览器并转到 https://localhost:4040:

此 UI 还允许您重放任何请求,这对于测试webhook非常有帮助:

就像 localtunnel 一样,每次执行 ngrok 时,您都会获得一个随机子域。您可以使用-subdomain选项指定自定义子域。例如,此命令将为您提供 URL http(s)://hello.ngrok.io

      ./ngrok http -subdomain=hello 3000
    

不过,该服务仅供付费客户使用。它还支持自定义域名

除此之外,您还可以使用 YAML 文件配置命令行的所有 ngrok 选项,它还具有 REST API 来管理隧道、收集指标和重放请求。您可以在文档页面了解有关此功能的更多信息该页面非常完整。

现在

根据其网站,现在允许您轻松、快速、可靠地将 Node.js 或 Docker 驱动的应用程序部署到云中。

这可以让我们意识到,Now 使用了与以前的服务不同的方法。Now 不会创建到本地主机的安全隧道,而是将您的应用程序部署到云中。

你可能会认为这属于另一个类别,但是你无需使用 Git 之类的东西就可以让你的应用程序在线可用,而且它还具有一些有助于开发的功能,使得现在进入这种比较。

要安装它,我们有三个选择

  • 使用针对 64 位系统的预构建二进制文件。
  • 使用 NPM,你可以使用npm install -g now安装 Now(全局)
  • 使用Now Desktop 应用程序(仅适用于 Mac),该应用程序也会安装 Now CLI。

安装后,转到您的应用程序目录并输入now

首次运行此命令时,它会提示您输入电子邮件地址以创建帐户并确认。接下来,它将开始部署您的应用、创建 URL 并将其放在剪贴板上。

部署应用程序可能需要一段时间,但与此同时,您可以转到浏览器并将 URL 粘贴到剪贴板上以查看进度。完成后,它将执行npm start脚本并显示您的应用程序:

如果我们将/_src添加到 URL,我们将看到已部署应用程序的源代码:

如果我们对应用程序进行更改,例如:

      ...

app.get('/', (req, res) => res.send('Hello World! v2') );

...
    <
以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据