【发布时间】:2019-11-27 21:54:11
【问题描述】:
我正在创建一个我想从命令行运行的节点应用程序。作为输入,它应该接受一个 .txt 或 .json 文件,对数据执行一些操作,并将某些内容返回到标准输出。但是,我无法弄清楚如何从标准输入读取文件。这就是我现在所拥有的。我从 nodeJS documentation 复制了这个。
process.stdin.on('readable', () => {
let chunk;
// Use a loop to make sure we read all available data.
while ((chunk = process.stdin.read()) !== null) {
process.stdout.write(`data: ${chunk}`);
}
});
process.stdin.on('end', () => {
process.stdout.write('end');
});
如果我从命令行运行这个程序,我可以在标准输入中输入一些东西,然后在标准输出中看到它返回。但是,如果我跑
node example.js < example.json 从命令行,我得到错误
stdin is not a tty。我知道管道文件意味着它不是从 tty 读取,但是我的代码的哪一部分要求它从 tty 读取?
如何从标准输入读取文件?
提前致谢!
【问题讨论】:
标签: node.js pipe stdin node-streams