2015-07-14 2 views
0

Я сейчас использую API yodaspeak И сделал некоторые небольшие изменения в кодах. Я хочу, чтобы пользователь ввел какие слова, чтобы изменить вот мой node.js кодКак читать ввод пользователя и преобразовывать его в строку

var YodaSpeak = require('yoda-speak'); 
var yoda = new YodaSpeak('hZy4MAVwtbmshFTdDuJSiMxKIxWsp1JSor1jsnuNeLjEVTnbXv'); 

console.log("Please enter the sentence you want to convert:"); 
process.stdin.on('readable', function() { 
var chunk = process.stdin.read(); 
if (chunk !== null) { 
    yoda.convert(toString(chunk), 
function(err, result) { 
if (!err) { 
    console.log(result.toString()); 
} else { 
    console.log(err); 
} 
}) 
    } 
}); 

консоль всегда говорит сообщение об ошибке Мне нужно как получить пользовательский ввод и преобразовать его в строку и присвоить его к переменной.

BTW заранее нам нужно установить yodaspeak

%npm install --save yoda-speak 

сообщение об ошибке

Please enter the sentence you want to convert 
fjesil 
[object undefined]. 
+0

* «консоль всегда сообщает сообщение об ошибке» * Какое сообщение об ошибке? В какой строке это произошло? какой файл? –

+0

oh Извините, я загружу его сразу. Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как сделать запрос и заменить строку в yoda.convert с пользовательским вводом –

+0

Я не понимаю ваш код ... 'words' определяется как неопределенный, а затем вы используете 'words' как имя события, которое вы слушаете, чтобы обработчик событий никогда не запускался. –

ответ

0

yodaspeak не там, где ваша проблема лежит, это с тем, как Вы принимаете текст из консоль. process.stdin.on( добавляет слушателя событий, а интересующее вас событие называется data, а не undefined. Ниже показано, как можно console.log() каждое слово, которое вводится в консоли:

console.log("Please enter the sentence you want to convert"); 
process.stdin.setEncoding('utf8'); 
process.stdin.on('data', function (words) { 
    console.log(words); 
}); 

Теперь все, что вам нужно сделать, это связать yodaspeak обратно в него.

console.log("Please enter the sentence you want to convert"); 
process.stdin.setEncoding('utf8'); 
process.stdin.on('data', function (words) { 
    yoda.convert(words, function (err, result) { 
     if (!err) { 
      console.log(result.toString()); 
     } else { 
      console.log(err); 
     } 
    }); 
}); 
+0

О, спасибо большое, кажется, что мне нужно составлять на моей основе программирования. Моя проблема решена. Большое спасибо –

+0

Вы можете опустить вызов '.resume()', если вы - usi ng - более новая версия узла. –

Смежные вопросы