下面的程序只是读取一个字符串并将其输出。当我在 cmd
上运行此程序时,程序不会打印出该字符串。它会继续读取输入,直到我使用 Ctrl+C
终止。当我的输入字符串结束时,如何告诉程序,以便它可以打印输出?
var concat=require('concat-stream');
var str=[];
process.stdin.pipe(concat(function(buff){
console.log(buff.toString());
}));
最佳答案
concat-stream
正在等待接收 finish
事件。在您的示例中,当您关闭标准输入时就会发生这种情况。如果您在 shell 中运行它,您可以通过按 Ctrl+D 关闭标准输入。如果您正在向进程传输某些内容,请确保完成后它会关闭其标准输出。
如果您尝试使脚本在 shell 中交互,请尝试 split :
process.stdin
.pipe(require('split')())
.on('data', function (line) {
console.log('got “%s”', line);
});
关于node.js - 在node.js中终止process.stdin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24074501/