Abe*_*bie 15 exec child-process node.js
例如,我正在运行节点中最基本的webServer(我正在使用Windows),其中包含以下代码(名为server.js):
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
Run Code Online (Sandbox Code Playgroud)
我想将它作为子进程运行,并且使用以下代码成功完成:
var exec = require('child_process').exec;
var serv = exec('node server.js', function(error, stdout, stderr){
console.log('outputs & errors:' + error, stdout, stderr);
});
Run Code Online (Sandbox Code Playgroud)
但是,一旦运行第二个文件,我什么也得不到.没有"输出和错误",没有"服务器运行在......".如果我在浏览器中键入localhost:1337,我会得到"hello world",所以我知道它正在运行.有没有办法管道"服务器正在运行......"所以我可以"肯定"它在听?
top*_*pek 25
Exec将返回STDOUT
,STDERR
当孩子完成时,请参阅exec
.这就是为什么在服务器启动时看不到任何输出的原因.
你想要的是fork
,它自动连接子进程STDOUT
和STDERR
你父进程.如果您的子进程是节点进程,那么这是首选方法.
如果你想使用exec,你可以使用子进程的流来获取你的数据,例如:
child.stdout.pipe(process.stdout);
child.stderr.pipe(process.stderr);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13959 次 |
最近记录: |