CNode

Windows后台运行node的web项目的方法

Ttank00发布于14 年前最后回复14 年前4 回复16264 浏览0 收藏

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

node app.js>>console.txt

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

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

查看回复

回复 (4)

W
wenbob#1·14 年前

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

W
wenbob#3·14 年前
引用 wenbobvbs太敏感了,这个方法容易被反病毒软件误击。我个人还是推荐用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;
参与回复
登录后即可参与回复。登录