node.js - 在node.js中终止process.stdin

标签 node.js

下面的程序只是读取一个字符串并将其输出。当我在 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/

相关文章:

node.js - GitLab CI 与 Postgres 错误 : connect ECONNREFUSED 127. 0.0.1:5432

node.js 管理频繁变化的本地依赖

node.js - Angular Jasmine 测试 HTML 注入(inject)失败

javascript - 使用 puppeteer 选择表格的第二行

node.js - Node 模块别名错误 : Cannot find module '@src/utils/constants'

node.js - 当循环中调用异步函数时,Node.JS 将如何处理循环控制?

Node.js buf.toString 与 String.fromCharCode

javascript - 如何更新子文档并删除子文档中数组的单个对象?

node.js - 将 NODE_ENV 传递给 docker 以运行 package.json 脚本

javascript - 阵列拼接原型(prototype)