如何在Windows下启动Koa并隐藏窗口
我打算在本地可以随时打开 http://127.0.0.1:3000/ 这样使用本地的网页程序了。
但是通过cmd执行 node app.js 那个黑色的窗口看着碍眼,于是有了这个教程。
要使命令提示符窗口在后台运行且不可见,可以使用 VBS 脚本(Visual Basic Script)来实现。VBS 脚本可以通过 Windows 脚本宿主来运行,并且可以执行各种系统级别的操作。
以下是一个示例 VBS 脚本,用于在后台运行命令提示符窗口并将其隐藏:
Set objShell = CreateObject("WScript.Shell")
' 调用 Run 方法运行命令,并将窗口隐藏
objShell.Run "cmd /c node your_app.js", 0, False
将上述代码保存为一个后缀为 .vbs
的文件,比如 run_hidden.vbs
。然后,将你的 Node.js 程序的启动命令 node your_app.js
替换到代码中的 node your_app.js
部分。
执行该 VBS 脚本文件后,命令提示符窗口将在后台运行且不可见。
请注意,虽然这种方法可以让窗口不可见,但仍然可以在任务管理器中看到相应的进程。
最后把这个脚本设置为开机启动,相当于本地的服务器功能就架设好了。
如果VBS 脚本的位置和JS脚本位置不同,就需要先切换工作目录。最好同时记录下服务器日志,写到log.txt文件里。
Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /c cd /d d:\hello-koa & node app.js> log.txt 2>&1", 0, False
>
: 这个符号将命令的输出重定向到一个文件。在这个命令中,log.txt
是文件的路径和名称,命令的输出将写入到这个文件中。
2>&1
: 这部分是将标准错误流(stderr)重定向到标准输出流(stdout)。在 Unix/Linux 系统中,2
表示标准错误流的文件描述符,1
表示标准输出流的文件描述符。>&
符号表示将一个流重定向到另一个流。所以,2>&1
意味着将标准错误流重定向到标准输出流,这样你的日志文件中将包含标准输出和标准错误的所有内容。
上面代码用到cmd命令切换目录,也可以直接在vbs中切换目录
Set objShell = CreateObject("WScript.Shell")
objShell.CurrentDirectory = "D:\hello-koa"
objShell.Run "cmd /c node app.js> log.txt 2>&1", 0, False
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步