我想获取 C++ 程序的输出并将其输入到 javascript 文件的标准输入中。但是我无法使用该方法将任何内容推送到标准输入中......
node example.js < test.txt
因为我收到以下错误。
示例.js:35
stdin.setRawMode( true );
类型错误:未定义不是函数
在对象。 (示例.js:35:7)
在 Module._compile (module.js:460:26)
在 Object.Module._extensions..js (module.js:478:10)
在 Module.load (module.js:355:32)
在 Function.Module._load (module.js:310:12)
在 Function.Module.runMain (module.js:501:10)
启动时(node.js:129:16)
在节点.js:814:3
有问题的代码如下所示。它在正常输入期间工作正常,但在上述情况下崩溃。
var stdin = process.stdin;
stdin.setRawMode( true );
stdin.resume();
stdin.setEncoding( 'utf8' );
stdin.on( 'data', function( key ){
//do stuff based upon input
有没有人遇到过这个问题,或者有关于如何解决它的想法?或者解决这个问题的另一种方法?
当使用重定向的标准输入运行程序时,您将连接到 ReadStream,而不是 TTY,因此不支持 TTY.setRawMode()。
setRawMode() 用于设置 tty 流,以便它不会以任何方式处理其数据,例如提供换行的特殊处理。这种处理过的数据被称为“煮熟的”。
根据定义,标准节点 ReadStream 已经是“原始”的,因为没有对数据进行特殊处理。
因此,重构您的代码而不调用 setRawMode() 它应该可以正常工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)