Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Командная строка (https://javascript.ru/forum/node-js-io-js/59402-komandnaya-stroka.html)

Николай777CR 09.11.2015 19:55

Командная строка
 
Здравствуйте. Помогите написать в node.js что-то типа командной строки) с чего начать?

pnpquest 09.11.2015 21:03

Начни с такого вот кода.
var readLine = require("readline").createInterface({input: prosess.stdin})
readLine.on("line", function(line){console.log(myEval(line))})

где myEval -- твоя функция, обрабатывающая входящие строки.

Николай777CR 09.11.2015 21:50

м, спасибо. А можно поподробнее пожалуйста)

pnpquest 09.11.2015 21:55

Цитата:

Сообщение от Николай777CR
А можно поподробнее пожалуйста

Какие тебе подробности нужны?

Николай777CR 09.11.2015 22:50

Побольше помочь с кодом, если можно)

pnpquest 09.11.2015 23:08

Николай777CR,
Я не понял что вам нужно. Просто напишите свою реализацию функции myEval, и код будет работать.

pnpquest 09.11.2015 23:21

Николай777CR,
Откуда я знаю, что Вам нужно? Вам Shell написать, bash или cmd? Я правильно понял, что Вы ведь замахнулись на реализацию языка программирования, практически, своего интерпретатора. И что Вам подсказать? Синтаксис Вашего языка? Семантику? По моему, Вы недооцениваете сложность задачи. Однако же, любой интерпретатор имеет Repl (read-eval-print-loop), это основа, как-бы. Вот реализацию Repl'a я Вам показал. Вырожденный случай -- метациклический интерпретатор, безо всяких расширений, если вы вставите вместо myEval нативный eval, вы будете интерпретировать входные строки так же, как это делает низлежащий язык, в данном случае, JS

nick1m 09.11.2015 23:32

Может быть вот так:

var readline = require('readline');
var rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});
rl.question("Введите своё имя: ", function(answer) {
  console.log("Спасибо,", answer);
  rl.close();
});

Код рабочий, только что проверил.

Николай777CR 09.11.2015 23:56

Нет) Нужно просто что-то типа командной строки

nick1m 09.11.2015 23:59

Цитата:

Сообщение от Николай777CR (Сообщение 395416)
Нет) Нужно просто что-то типа командной строки

:lol: :cray:


Часовой пояс GMT +3, время: 07:19.