Node.js 调试ruby子进程节点js
我正在运行一个Ruby脚本作为节点js子进程,代码如下Node.js 调试ruby子进程节点js,node.js,ruby,child-process,Node.js,Ruby,Child Process,我正在运行一个Ruby脚本作为节点js子进程,代码如下 const constructDS = childProcess.exec('ruby ./constructOSW.rb',function(error,stdout,stderr){ console.log(stdout); console.log("Ruby StdErrors:", stderr);
const constructDS = childProcess.exec('ruby ./constructOSW.rb',function(error,stdout,stderr){
console.log(stdout);
console.log("Ruby StdErrors:", stderr);
console.log("Ruby Errors", error);
});
//
constructDS.stdin.write(JSON.stringify(nonGeoDesignSpace))
constructDS.stdin.end();
在脚本运行时,我很难确定如何启动ruby调试器(理想情况下是ide,但pry可以)
任何指针和/或示例代码都能回答我自己的问题,因为@Max pleaner建议,当您作为子进程运行ruby时,没有办法运行pry 因此,我将stdin作为一个json文件写入ruby(我称之为argsIntoRuby.json),然后使用以下代码运行一个批处理
“ruby.exe rubyscript.rb
console.log(stdout)
行看到pry输出?你这样做是为了调试,还是它实际上是程序功能的一部分?@max pleaner我运行它是为了调试-不幸的是,当我使用ruby pry-r运行ruby时,我没有从stdoutok获得任何输出,这里有一条经验法则。当断点位于子进程后面时,决不应尝试与它交互。这根本行不通。也许你可以拼凑出一些方法来让它工作,但这不太可能值得付出努力。最好尝试自己运行Ruby脚本(不使用节点/子进程包装器),这样断点就能无缝工作。