Mein的目的只是使用node.js启动exe。如果应用程序意外终止,则应捕获异常并将其记录在协议中。通过c ++项目中的以下语句抛出异常:
throw std::string("NOT X or x!!!");
我的Javascript是:
var spawn = require('child_process').spawn;
var cp = spawn(process.env.comspec, ['/c', 'myExcepTest.exe', '', '']);
// **doesn't work**
cp.on('uncaughtException', function(err){
console.log("Caught exception: " + err);
});
cp.stderr.on('error', function(err) {
console.log(err.toString());
});
cp.stdin.resume();
cp.stdin.setEncoding('utf8');
cp.stdin.on('data', function(data) {
cp.stdout.write(data);
});
// **does work**
cp.on('exit', function(code){
console.log("Child exited with code: " + code);
});
cp.stdout.on('data', function(data) {
console.log(data.toString());
});
我的问题是:
使用node.js监控进程是一种好习惯 视窗?
是否可以使用node.js来捕获异常 视窗?
如何正确地将stdin传递给node.js中的stdout 脚本?
抱歉我的英语不好;)
答案 0 :(得分:0)
uncaughtException
。原因是,没有标准的方法可以捕获这些东西,考虑到子进程可以是任何类型的程序。stdin
传递给自己的stdout
,因为stdin
is a Writable stream并且是子进程的输入(不是它的输出) ,因此stdin
永远不会有data
个事件。