我正在运行一个node.js应用程序,该应用程序充当中间人代理,代理我通过PhantomJS无头测试环境发出的所有请求。我想从我的PhantomJS测试脚本中调出这个代理(虽然我已经查看了它,似乎幻像没有用于执行shell命令的exec()
命令)或者是一个管理这两个进程的小shell脚本。理想情况下,它会做类似
#!/bin/bash
node proxy.js
phantomjs runTests.js
kill node process here
我有什么方法可以做到这一点吗?
答案 0 :(得分:3)
在提出这个问题之后,我找到了一个更好的方法,通过使用子进程从我的节点应用程序中执行幻像程序。我将我的幻像脚本放在包含我的节点应用程序的文件夹中,然后像这样使用exec:
var exec = require('child_process').exec;
var _phantom = exec('phantomjs runTests.js',function(error,stdout,stderr){
console.log(stdout);
};
_phantom.on('exit',function(code,sig){
process.exit(code);
});
这意味着我可以启动代理服务器,然后执行子进程。 _phantom.on('exit')
块允许我检测进程何时退出代码。然后,使用process.exit
发送退出节点应用程序非常简单。