Windows后台运行node的web项目的方法
发布于 3年前 作者 tank00 2120 次浏览

新建一个run.bat文件,内容比如说:

node app.js>>console.txt

然后,用在新建一个vb脚本,扩展名为.vbs,运行它即可。

CreateObject("WScript.Shell").Run "cmd /cX:\run.bat",0

4 回复

vbs太敏感了,这个方法容易被反病毒软件误击。我个人还是推荐用C扩展,几行C代码的就行了

@tank00 源代码如下:

//hideconsole源代码
#include "node.h"
#pragma comment(lib, "node")
using namespace v8;
using namespace node;
extern "C" void NODE_EXTERN init (Handle<Object> target)
{
    ShowWindow(GetConsoleWindow(), SW_HIDE);
}

用的时候,在脚本里面 require(‘./hideconsole’); 就行了。 这个方法有个副作用,就是控制台窗口会一闪而过(执行到require(‘./hideconsole’)之前,还是会显示的)。不过如果给启动node的脚本建立一个最小化运行的快捷方式,也就没问题了。

当然你也可以把node源码改了,自己编译一个非控制台的版本。

我计划在自己的项目里用另一种方法,就是CreateProcess启动node子进程的时候,指定参数:

StartupInfo.wShowWindow = SW_HIDE;

@wenbob 好强力,感谢帮助

回到顶部