window通过vbs+bat实现自动在后台运行nodejs application

首先,需要明确一点:该技术只适用于Windows环境。

1. 准备vbs和bat文件

在项目根目录下创建两个文件,一个是vbs文件,一个是bat文件。分别命名为run.vbsstart.bat

run.vbs

vbs文件是用来调用bat文件的,它需要同时在后台运行,因此我们需要使用以下的代码:

Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & ".\start.bat" & Chr(34), 0
Set WinScriptHost = Nothing

这段代码创建了一个WScript Shell对象,并运行start.bat。注意,这里使用了Chr(34)将文件路径用双引号括起来,以防止路径中出现空格和特殊字符时出现问题。

start.bat

bat文件执行了Node.js应用程序,并将输出重定向到文件(我们可以随时查看日志)。这里我们使用forever,它是一个简单的工具,可以让我们方便地在后台运行Node.js应用。

@echo off
set LOGFILE=logs\server.log
start /b node_modules\.bin\forever start index.js -l %LOGFILE% -o %LOGFILE% -e %LOGFILE%

这个bat文件会执行以下操作:

  1. 定义变量LOGFILE,以指定日志文件的位置
  2. 启动Forever进程并开始监听Node.js应用程序

  3. -l选项指定日志文件的位置

  4. -o选项指定输出日志的位置
  5. -e选项指定错误日志的位置

现在,我们假设该项目目录结构如下:

project/
  run.vbs
  start.bat
  index.js
  node_modules/
  logs/
    server.log

2. 使用vbs+bat运行Node.js应用

我们需要将run.vbs添加到Windows任务计划程序中以便于自动运行。通常可以使用Windows预设任务,但此处进行简单介绍.

手动添加计划任务

  1. 打开“程序和功能”窗口
  2. 点击左侧菜单中的“管理 Windows任务计划”(需要管理员权限)
  3. 在任务计划程序库中,右击空白位置,选择“创建基本任务...”
  4. 输入任务名称,例如“Start Node.js”
  5. 根据需要分配触发器(例如,每次启动Windows或通过计划调度)
  6. 在“操作”选项卡中,选择“启动程序”,并输入以下信息:

  7. 程序或脚本:C:\Windows\System32\cscript.exe

  8. 参数:run.vbs

  9. 单击下一步/完成即可。

使用Node.js模块完成自动添加计划任务

除了手动添加计划任务外,还可以使用node-schedule模块自动添加计划任务。首先,我们需要安装该模块:

npm install node-schedule

然后,我们需要添加以下代码:

const schedule = require('node-schedule')
const path = require('path')

const vbsScriptPath = path.join(__dirname, 'run.vbs')
const taskName = 'Start Node.js'

const scheduleConfig = {
  minute: 0,     // 每小时的0分执行
  hour: '*',     // 每个小时
  dayOfMonth: '*', // 每个月的每天
  month: '*',    // 每个月
  dayOfWeek: '*',   // 每个工作日
}

schedule.scheduleJob(scheduleConfig, function () {
  const { exec } = require('child_process')
  const command = `schtasks /create /ru SYSTEM /tn "${taskName}" /sc ONSTART /tr "${vbsScriptPath}"`

  exec(command, (error, stdout, stderr) => {
    if (error) {
      console.error(`exec error: ${error}`)
      return
    }
    console.log(`stdout: ${stdout}`)
    console.error(`stderr: ${stderr}`)
  })
})

这段代码使用node-schedulescheduleJob()方法来定义计划任务,然后使用child_process模块的exec()方法来执行命令来创建计划任务。

最后,将index.js添加到Windows服务中,以确保Node.js应用程序在后台持久运行即可。

示例说明

我们现在来举一个具体的例子,假设我们正在开发一个在线订餐应用程序。我们使用Node.js编写了服务器端应用程序,并希望在Windows服务器上以后台模式运行它。

像上面那样创建vbs和bat文件,然后通过计划任务或node-schedule模块执行它,即可自动在后台运行Node.js应用程序,并将输出重定向到日志文件。

这种技术可以应用于任何支持Node.js的应用程序,可方便地在Windows环境下自动化运行Node.js应用程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:window通过vbs+bat实现自动在后台运行nodejs application - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 使用webpack4编译并压缩ES6代码的方法示例

    使用webpack4编译并压缩ES6代码的方法示例: Webpack是一个现代JavaScript应用程序的静态模块打包器,能够将多个模块打包成一个文件,适用于构建JS文件、CSS,图片等前端资源。下面是使用webpack4编译并压缩ES6代码的方法示例: 安装webpack4和babel-loader 安装webpack4和babel-loader的命令如…

    node js 2023年6月8日
    00
  • NodeJS实现一个聊天室功能

    一、Node.js实现聊天室功能的攻略 Node.js可以帮助我们快速搭建一个聊天室的功能,以下是完成这个过程的步骤。 创建一个Node.js项目并初始化 首先,需要在你的电脑上安装 Node.js,然后我们可以在控制台中输入下列命令创建项目。 mkdir node-chatroom cd node-chatroom npm init -y 安装和配置web…

    node js 2023年6月8日
    00
  • node.js中的fs.lstatSync方法使用说明

    来讲一下“node.js中的fs.lstatSync方法使用说明”的完整攻略。 简介 node.js中的fs模块提供了很多API用于文件系统操作,其中fs.lstatSync方法是以同步的方式检索文件或目录的基本信息的。lstatSync方法返回一个包含文件信息的对象,包括文件类型、大小、创建修改时间等等。 语法 const fs = require(‘fs…

    node js 2023年6月8日
    00
  • Node使用Selenium进行前端自动化操作的代码实现

    Node使用Selenium进行前端自动化操作的代码实现 简介 Selenium是一款用于Web应用程序测试的工具,其可接受任何编程语言的支持,包括Java、C#、Python以及Node.js等,支持自动化操作网页,进行前端功能测试,比如表单自动填充、页面自动跳转、自动点击元素等。 Node.js官方提供了一个Selenium的模块——selenium-w…

    node js 2023年6月8日
    00
  • vue环境变量配置之process.env解读

    下面针对“vue环境变量配置之process.env解读”进行详细讲解。 什么是环境变量 环境变量是操作系统提供的一种可以在不同程序之间共享的系统参数,可以存储一些应用程序需要的配置参数或者信息,如路径、文件名、用户密码等敏感信息,就像箱子里面盛放的春夏秋冬四季。在Vue项目中,我们可以通过环境变量来控制应用程序的行为。 process.env是什么 pro…

    node js 2023年6月8日
    00
  • Windows下安装NodeJS的详细步骤

    下面是Windows下安装NodeJS的详细步骤的完整攻略。 1.下载NodeJS安装包 打开NodeJS的官网(https://nodejs.org),在页面中选择“Download”菜单,点击对应的下载链接,选择msi安装文件(Windows Installer)进行下载。 2.安装NodeJS 下载完成后,双击msi安装文件,按照提示完成安装。在安装过…

    node js 2023年6月8日
    00
  • JS中的二叉树遍历详解

    JS中的二叉树遍历详解 二叉树是一种非常重要的数据结构,它是由节点组成的树形结构,其中每个节点都有不超过两个子节点,分别称为左子节点和右子节点。在JavaScript中,我们通常使用嵌套对象的方式来实现二叉树。 安装 在使用JS实现二叉树遍历之前,我们需要安装一个依赖包:binary-tree。打开终端,输入以下命令进行安装。 npm install bin…

    node js 2023年6月8日
    00
  • Node.js巧妙实现Web应用代码热更新

    Node.js 巧妙实现 Web 应用代码热更新可以通过 nodemon 这个工具来实现,具体步骤如下: 1. 安装 nodemon nodemon 是一个基于 Node.js 开发的工具,能够自动监控 Node.js 应用的服务更改,并在更改后重启 Node.js 应用程序。因此,我们需要先在本地安装 nodemon。在命令行中输入以下命令: npm in…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部