让node.js进程停止接受来自用户的“quit”命令的输入

时间:2014-09-07 00:00:26

标签: javascript node.js

我在Professional Node.js中编写了一个基本的TCP客户端。

//TCP Client
var net = require('net'); 
var port = 4000;
var conn;

process.stdin.resume();

(function connect() {
  conn = net.createConnection(port);

  conn.pipe(process.stdout, {end: false});
  process.stdin.pipe(conn); 

  process.stdin.on('data', function(data) {
    if (data.toString().trim().toLowerCase() === 'quit') {
      conn.end();
      process.stdin.pause(); 
    }
  });
}());

当用户输入'quit'时,我希望该进程结束与TCP服务器的连接并停止接受来自STDIN的输入。

当我现在这样做时,我收到以下错误:

> quit
ReferenceError: quit is not defined

在此之后,我的if语句中的代码未运行。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

REPL已经从stdin读取了。您需要在REPL之外执行脚本,这样除了脚本之外没有任何拦截标准输入。