3

我一直在玩 Node 的 REPL。我认为通过 Socket 使其可用,通过 Telnet/puTTY/whatever 连接到它,并即时调试我的服务器会非常酷。

我使用了此处找到的示例:http ://nodejs.org/docs/latest/api/repl.html ,基本上看起来像这样......

net.createServer(function (socket) {
  var cmd = repl.start(">", socket);
  //... some other stuff here.... not important
}).listen(5001);

好,很好!现在我可以使用 Telnet 连接到端口 5001 并与 REPL 交互。但是,我遇到了控制字符(即 Tab、Ctrl+C、向上箭头、向下箭头等)的问题。我怎样才能让这些工作?例如,如果我使用 telnet 连接,输入“1+1<Enter>”,我得到 2。但是,当我点击“<Up Arrow><Enter>”时,我得到“...”,好像REPL 正在等待我完成命令。但是,实际上,我想做的只是查看我执行的最后一个命令。我知道 Telnet 喜欢保持其输出,直到输入换行符,但是有什么方法可以避免这种情况吗?

$ telnet localhost 6634
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
>1+1
2
>^[[A
...

编辑:我也发现了这个问题,可能相关也可能不相关 -箭头键在 Telnet 中变成控制字符

编辑2:嗯......rlwrap似乎解决了我的大部分问题:

$ rlwrap telnet localhost 6634

唯一不起作用的是局部/全局变量的选项卡完成,我想我可以没有它。我最关心的是命令历史。rlwrap很整洁!

4

1 回答 1

1

See above.

rlwrap telnet localhost 6634

于 2012-05-30T19:03:52.493 回答