如何将缓冲区作为管道输入传递给节点脚本?

时间:2016-02-06 21:58:41

标签: javascript node.js terminal

我想将缓冲区作为管道输入发送到终端上的节点脚本。因此,我使用以下代码创建了一个脚本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没有传递缓冲区。我该如何实现这一目标?我对节点比较新。

2 个答案:

答案 0 :(得分:2)

来自该函数的

return没有任何效果。如果您希望命令输出内容,则必须写入stdout(或stderr):

process.stdout.write(objBuffer);

答案 1 :(得分:2)

您实际上并没有通过返回函数中的值来输出任何内容。你应该写信给process.stdout

process.stdout.write(objBuffer)