我想将缓冲区作为管道输入发送到终端上的节点脚本。因此,我使用以下代码创建了一个脚本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没有传递缓冲区。我该如何实现这一目标?我对节点比较新。
答案 0 :(得分:2)
return
没有任何效果。如果您希望命令输出内容,则必须写入stdout
(或stderr
):
process.stdout.write(objBuffer);
答案 1 :(得分:2)
您实际上并没有通过返回函数中的值来输出任何内容。你应该写信给process.stdout
:
process.stdout.write(objBuffer)