Я играл с REPL Node.Я подумал, что было бы неплохо сделать его доступным через Socket, подключиться к нему через Telnet / puTTY / что угодно и отладить мой сервер на лету.
Я использовал пример, найденный здесь: 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);
ОК, отлично!Теперь я могу подключиться к порту 5001 через Telnet и взаимодействовать с REPL.Но у меня возникают проблемы с управляющими символами (например, Tab, Ctrl + C, стрелка вверх, стрелка вниз и т. Д.).Как я могу заставить их работать?Например, если я подключаюсь с помощью telnet, введите «1 + 1 », я получу 2. Но тогда, когда я нажму " ", я получаю" ... ", как будто REPL ждет, когда я закончу команду. Но, на самом деле, все, что я хочу сделать, это посмотреть последнюю команду, которую я выполнил. Я знаю, что Telnet любит удерживатьна его вывод, пока не будет введен перевод строки, но есть ли способ избежать этого?
$ telnet localhost 6634
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
>1+1
2
>^[[A
...
EDIT : я также обнаружил эту проблему, которая может или не можетбыть связанным - клавиши со стрелками превращаются в управляющие символы в Telnet
РЕДАКТИРОВАТЬ 2 : Хммм ... rlwrap
, кажется, решает большинство моих проблем:
$ rlwrap telnet localhost 6634
Единственное, что не работает, - это табулирование локальных / глобальных переменных, без которых, я полагаю, я могу жить. Больше всего меня интересовала история команд. rlwrap
аккуратно!