npm 包 pm2-windows-service-nosetup 使用教程

阅读时长 5 分钟读完

随着 Node.js 应用程序的普及,我们需要一种在生产环境中可靠地部署 Node.js 应用程序的方法。在 Windows 平台上,我们可以使用 pm2-windows-service-nosetup,这是一个 Node.js 包,能够将 Node.js 应用程序部署为 Windows 服务。

pm2-windows-service-nosetup 是什么?

pm2-windows-service-nosetup 是一个 Node.js 包,用于在 Windows 上将 Node.js 应用程序部署为 Windows 服务。它是基于 pm2 和 node-windows 包构建的,并且通过提供简单的命令行界面,使得将 Node.js 应用程序部署为 Windows 服务变得容易。

安装 pm2-windows-service-nosetup

要使用 pm2-windows-service-nosetup,首先需要使用 npm 进行安装:

接着,您需要使用以下命令来显示你所在电脑上的 Windows 系统信息:

根据显示结果中的 "OS Name" 和 "System Type" 确认您的操作系统是否为 Windows:

如果您的操作系统是 Windows,并且您已经安装了 Node.js 和 npm,则已安装完成。

使用 pm2-windows-service-nosetup

接下来看看如何使用 pm2-windows-service-nosetup 将 Node.js 应用程序部署为 Windows 服务。

  1. 首先,您需要将您的 Node.js 应用程序打包成一个 .js 文件,如 server.js

  2. 接着,使用 pm2 命令将 server.js 启动:

    运行该命令后,您的 Node.js 应用程序就已经启动运行了。

  3. 使用 pm2-windows-service-nosetup 命令将您的 Node.js 应用程序部署为一个 Windows 服务:

    其中:

    • -n "my-app": Windows 服务的名称,您可以自定义。
    • -d "My Node.js App": Windows 服务的描述,您可以自定义。
    • -u "Administrator": 部署 Windows 服务时使用的 Windows 用户名。
    • -p "password": 部署 Windows 服务时使用的 Windows 用户密码。
    • --no-setup: 禁止自动设置 Windows 服务。
    • --force: 强制覆盖任何先前的 Windows 服务。
  4. 启动 Windows 服务:

    其中,my-app 是您在第 3 步中自定义的 Windows 服务名称。

现在,您已经成功地将 Node.js 应用程序部署为 Windows 服务了。可以使用 net stop 命令来停止 Windows 服务:

您还可以使用 Windows 服务管理器来查看和管理 Windows 服务。

示例代码

以下是一个简单的 Node.js 应用程序,用于输出 "Hello World!" 字符串。

-- -------------------- ---- -------
----- ---- - ----------------

----- ------ - ----------------------- ---- -- -
  -------------- ---------
---

------------------- -- -- -
  ------------------- -- ------- -- ------------------------
---

可以使用 pm2 将其启动:

使用 pm2-windows-service-nosetup 将其部署为 Windows 服务:

启动 Windows 服务:

访问 http://localhost:3000,您将看到 "Hello World!" 字符串输出在浏览器上。

结论

通过 pm2-windows-service-nosetup,将 Node.js 应用程序部署为 Windows 服务变得非常容易。只需简单的几个命令,就可以完成这一任务。部署 Node.js 应用程序为 Windows 服务,能够让您的应用程序一直在运行,并且非常方便地集成到 Windows 系统中。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562e281e8991b448e066e

纠错
反馈