所以我有一些ruby代码使用puts
循环将字符串放到stdout然后使用sleep
进行休眠。然后我有一些node.js代码,它们在stdin上侦听数据事件,并简单地记录从stdin获取的内容。
如果我运行echo 'something' | node my_code.js
我会看到一些内容,但如果我运行ruby my_code.rb | node my_code.js
我什么也看不见。
我是否无法使用UNIX管道将stdout从ruby代码重定向到node.js代码的stdin?
答案 0 :(得分:0)
两者之间应该没什么区别,Ruby代码应该没问题。
但是,你发现了一些问题。如果您通过tee
运行Ruby会发生什么?
ruby my_code.rb | tee file
你看到输出了吗?如果没有,请开始调查您的Ruby代码。 (如果在没有管道输出的情况下运行它,它是否有效?)。如果你确实看到了你想要的输出,那么Ruby程序会停止(退出)吗?你得到命令行提示吗?
如果Ruby没有任何异常,那么当您将多行文件传输给它时,JavaScript会发生什么:
cat my_code.rb | node my_code.js
我希望其中一个场景可以为你提供追逐的东西。
答案 1 :(得分:0)
试试这个:
ruby my_code.rb | awk '{print;fflush()}' | node my_code.js
或者这个:
ruby my_code.rb | grep --line-buffer '.*' | node my_code.js