如何将缓冲区作为pipe道input传递给节点脚本?

我想发送缓冲区作为pipe道input到terminal上的节点脚本。 因此,我用下面的代码创build了一个脚本ping.js:

#!/usr/local/bin/node function bufferDemo() { var objBuffer = new Buffer(29); objBuffer.writeUInt32LE(29,0); objBuffer.write('{message:"pingfrompingjs"}',4); return objBuffer; } bufferDemo(); 

然后我在命令行上运行以下命令:

  ./ping.js | ./index.js 

我也试过:

  ./ping.js > out.json 

out.json是空的所以显然ping.js不通过缓冲区。 我如何做到这一点? 我对节点比较陌生。

你实际上并不是通过返回函数中的值来输出任何东西。 你应该写信给process.stdout

 process.stdout.write(objBuffer) 

从functionreturn没有任何效果。 如果你想要你的命令输出的东西,你必须写入stdout (或stderr ):

 process.stdout.write(objBuffer);