11

次の例を考えてみましょう

process.stdin.resume();
process.stdin.on("data", function(data) {
  console.log("recieved " + data)
})

process.stdin.write("foo\n")
process.stdin.write("bar\n")

somethingターミナルに入力すると、

 received something

以前に を使用して送信したfooとが同じように機能しないのはなぜですか?barstdin.write

stdin.on("data)たとえば、コードでこのイベント ( ) をトリガーするにはどうすればよいですか? これを行うことが期待されprocess.stdin.writeていましたが、同じ出力が返されただけです。

4

1 に答える 1

8

ファイル記述子から入力を取得するのは、読み取り可能なストリームです。stdinその記述子に書き込むことはできないと思います(ただし、別の書き込み可能な記述子に接続することはできます)。

ただし、あなたの場合の最も簡単な解決策は、'data'イベントをシミュレートすることです。すべてのストリームは EventEmiiter であるため、次のように動作します。

process.stdin.resume();
process.stdin.on("data", function(data) {
   console.log("recieved " + data)
});

process.stdin.emit('data', 'abc');
于 2013-01-18T20:38:47.630 に答える