我已成功从我的 Node 应用程序生成一个 ruby 脚本。然而,在我的 Ruby 脚本中,我想请求一些 gem 和文件,并且似乎在执行请求时,node.js 没有得到任何响应。
这是这样的:
var cp = require('child_process')
var ruby_child = cp.spawn('ruby',['libs/scorer/test.rb']);
var result = '';
ruby_child.stdout.on('data', function(data) {
result += data.toString();
});
ruby_child.on('close', function() {
console.log(result);
});
我的 Ruby 脚本如下所示:
require 'utils' # if I remove this line, I can get the response.
# Does it have an argument?
if ARGV.nil? || ARGV.empty?
p 'test'
exit
end
最佳答案
这可能是 require
行失败了。 Ruby 程序向 STDERR
发送了一些错误状态,然后退出,并且您的 js 程序没有捕获 STDERR 输出。
在 js 程序中添加一些 STDERR 捕获代码,以获取问题的诊断信息。您可能会发现 Ruby 在 $LOAD_PATH
中找不到所需的库。
ruby_child.stderr.on('data', function(data) {
console.log("ERROR --- " + data);
});
关于ruby - 从 Node.js 生成 Ruby - 如何在 Ruby 文件中进行 require?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24472450/