0

我正在运行一个 node.js 应用程序,它充当中间人代理来代理我通过 PhantomJS 无头测试环境发出的所有请求。我想从我的 PhantomJS 测试脚本(尽管我已经研究过它,似乎 phantom 没有exec()用于执行 shell 命令的命令)或一个管理这两个进程的小型 shell 脚本来启动这个代理。理想情况下,它会做类似的事情

#!/bin/bash
node proxy.js
phantomjs runTests.js
kill node process here

有什么办法可以做到这一点吗?

4

1 回答 1

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

于 2012-08-02T19:25:33.043 回答