问题标签 [node-windows]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
45 浏览

node.js - 如何在 Ubuntu 上安装仅限 Windows 的 NPM 包进行开发?

语境:

我正在为 Windows 2016 服务器开发一个节点应用程序。我开发的机器运行 Ubuntu 18.04。

我想使用 package node-windows,但是当我尝试安装它时,我收到以下错误:

问题:

虽然我无法在 Linux 上运行应用程序对我来说是有意义的,但我正在寻找一种允许我在 Linux 上编写并希望构建代码的方法。我怎样才能做到这一点?

0 投票
1 回答
534 浏览

installation - 使用 Inno Setup 和 node-windows 脚本将节点应用程序安装为服务的问题

当从 Inno Setup 运行以下脚本时,服务会安装但不会立即启动或在系统重新启动后启动:

验证安装程序节点windows.js:

当 Inno Setup 安装程序运行时,它肯定会安装服务,并且在启动类型中设置为“自动”。但是,当我重新启动机器时,它不会自动启动。

但是,当我跑步时

节点验证安装程序节点windows.js

服务安装(在我更改名称后不会发生冲突)并立即自动启动而无需重新启动。

我也尝试过以管理员身份运行。validation-installer-node-windows.js从终端运行时不需要特殊权限。


我尝试使用 Pascal 脚本和AfterInstall关键字触发 .js 脚本,如下所示:

同样,该脚本运行良好并安装了该服务。但是,与之前一样,它不会自动将状态设置为“正在运行”,并且当点击 nodejs 端点时,它会返回“无法连接”错误,然后服务状态会返回空白。


有一系列日志消息,它以:

C:\woolworths-receipt-validation-app1_v2\app.js 停止运行。

然后:

意外退出后重新启动 1250 毫秒;尝试 = 1

这会迭代 3 次尝试,然后最后一个日志显示:

子进程 [5616 - C:\Program Files\nodejs\node.exe --harmony C:\woolworths-receipt-validation-app1_v2\node_modules\node-windows\lib\wrapper.js --file C:\woolworths-receipt -validation-app1_v2\app.js --scriptoptions= --log "receipt-validation-app1_7 wrapper" --grow 0.25 --wait 1 --maxrestarts 3 --abortonerror n --stopparentfirst undefined] 以 0 结束

0 投票
1 回答
28 浏览

node-windows - 未使用 node-windows 安装服务

我尝试使用 node-windows 创建服务>“守护程序”文件夹正在创建,但服务没有安装。以下是代码:

0 投票
1 回答
575 浏览

windows-server - Wiki.js 未作为 Windows 服务运行

Windows Server 2019 Standard (1809) 使用 PostgreSQL 安装了 Wiki.js。手动启动服务器时效果很好

安装 node-windows 并注册以将 Wiki.js 作为服务运行。服务无法启动。daemon 文件夹中的 wiki.out.log 显示以下内容:

在非服务器 Windows 10 机器上尝试完全相同,它按预期工作。关于它无法在服务器上运行的原因有什么想法吗?

0 投票
0 回答
88 浏览

node.js - Node JS 应用程序服务在 Windows 10 系统重启时停止运行。我该如何解决这个问题?

我正在使用 Windows 服务在系统重新启动时运行我的 nodejs 应用程序。但是我的应用程序没有运行,每当我签入服务时,它在状态栏中显示为空白,并且我已经将启动类型选择为自动。我还在事件查看器中检查了日志,但没有发现任何与我的服务相关的内容(例如信息、警告、错误等)。我使用下面的代码将我的 nodejs 应用程序安装为 Windows 10 中的服务。

0 投票
1 回答
550 浏览

node.js - 在作为 Windows 服务运行的 node.js 应用程序中增加 max-old-space-size

我对 node.js 比较陌生,并且已经构建了一个应用程序,该应用程序旨在部署为独立应用程序,而无需安装 node.js 或其任何依赖项。

我遇到了一个问题,在特定的、不易重现的实例中,应用程序崩溃并且我收到“Javascript 堆内存不足”错误。

在调试根本原因时,我正在尝试增加堆大小。我正在使用 node-windows 将应用程序作为服务运行,并使用 nexe 来构建。我已经尝试了很多我在其他论坛回复中发现的东西,包括:

  • 各种版本的 Python 2x 和 3x
  • 在构建脚本中运行 "build": "nexe --enableNodeCli --build" 并将 --max-old-space-size=4096 添加到快捷方式目标
  • 升级(并最终回滚)Node.js
  • 在 Windows 环境变量中将 --max-old-space-size=4096 添加到 NODE_OPTIONS

..等等。这些似乎只是建议的最常见的解决方案。

其中一些解决方案导致无法运行构建。其他人运行,但内存保持在 1.5 GB 左右。

有没有人遇到过这个问题并找到了一个可以增加应用程序堆内存的解决方案:

  1. 在没有 Node 的环境中运行
  2. 作为 Windows 服务运行

……

  • 操作系统:Windows 10
  • 节点:10.22.1(也试过12.19.0)
  • 下一个:3.3.7
  • Python:2.7.17(也尝试过 2.7.16、2.7.14、3.7、3.8 和 3.9)

……

编辑:我尝试将 nodeOptions: ['--max-old-space-size=4096'] 添加到服务选项中,但仍然从 v8.getHeapStatistics 获得反馈,即大小约为 1.42 GB。到目前为止,我一直在 index.js 中创建服务并将其构建到可执行文件中(以避免必须安装 node.js),但我确实将其分离到自己的脚本中并通过控制台运行它 - 结果相同。

这是代码:

0 投票
0 回答
72 浏览

node.js - 安装服务节点窗口后找不到服务

我的安装服务脚本如下:

install_windows_service.js

在终端我运行命令:

节点 .\install_windows_service.js

终端展示:

安装完成。服务存在:true

但我无法在 Windows 服务上找到此服务。

0 投票
4 回答
5625 浏览

postgresql - Wiki.js 未运行。数据库连接错误

Windows Enterprise 2016 LTSB 版本 1607。使用 PostgreSQL 安装了 Wiki.js。之前安装了 Node.js (v12.16.2)。

使用 Powershell 进入wiki.js安装过程的第 8 步:

我收到此错误:

我意识到我忘了创建一个 PostgreSQL,所以我使用 pgAdmin4.28 创建了一个“wiki”数据库。错误现在更改为:

请发送帮助!我感谢所有评论。谢谢!

0 投票
1 回答
86 浏览

node.js - 尝试在 azure vm 上将节点服务器作为 Windows 服务运行

我已经构建了一个节点服务器并定期对其进行测试,但从 powershell 运行。现在我正在尝试使用 node-windows 包将节点服务器作为服务运行,以便服务器连续运行。尝试启动服务时出现以下错误
在此处输入图像描述

当看到事件查看器时,我收到以下错误 在此处输入图像描述

下面是创建服务的代码:

该服务启动,但下一秒在事件查看器中查看时它会自动终止。我在 azure vm 上的 windows server 2019 os 上运行节点服务器。

0 投票
1 回答
678 浏览

node.js - 如何通过使用 node-windows 创建的 Windows 服务传递 dotenv 配置路径

Windows Server 2008 R2 企业版

节点版本 12.13.1

节点窗口版本 1.0.0-beta.5

当我调用我的节点应用程序时,我需要将路径传递给特定的环境文件,而不是在代码中使用 require('dotenv') 来加载环境变量(例如从默认的 .env 文件)。这个环境文件是不同的,取决于应用程序是为哪个客户启动的(例如不同的数据库、路径、客户代码等)。

在 cli 中,我可以通过这种方式成功地做到这一点:

如您所见,我使用绝对路径作为 env 文件的位置,但它也适用于相对路径。我只是想消除这一点,因为我无法使用 node-windows 进行这项工作。

我正在尝试使用 node-windows 创建一个 Windows 服务包装器,该服务包装器调用我的节点应用程序并像上面的代码一样加载特定的 env 文件。到目前为止无法使其工作,在创建 Windows 服务后,它会在片刻后退出,这告诉我它缺少运行所需的环境变量。这意味着它无法加载找到环境文件。

这是我使用 node-windows 创建 Windows 服务的脚本:

我已经在各种配置中尝试了“scriptOptions”方法和“env”方法,但没有任何效果。

如果以前有人设法制作过类似的东西,我非常想知道你是怎么做到的。