Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 调试ruby子进程节点js_Node.js_Ruby_Child Process - Fatal编程技术网

Node.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);

我正在运行一个Ruby脚本作为节点js子进程,代码如下

              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这是一个非常有趣的问题。如果您向代码添加一个pry调用,并运行此操作,您是否可以通过
console.log(stdout)
行看到pry输出?你这样做是为了调试,还是它实际上是程序功能的一部分?@max pleaner我运行它是为了调试-不幸的是,当我使用ruby pry-r运行ruby时,我没有从stdoutok获得任何输出,这里有一条经验法则。当断点位于子进程后面时,决不应尝试与它交互。这根本行不通。也许你可以拼凑出一些方法来让它工作,但这不太可能值得付出努力。最好尝试自己运行Ruby脚本(不使用节点/子进程包装器),这样断点就能无缝工作。