如何将缓冲区作为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);