2017-09-25 24 views
1

Linux端末でノードを実行しているときに、ノードjsのreadlineモジュールから異常な動作をしています。モジュールは機能しますが、ユーザー入力が文であるかのように評価して参照エラーを返します。これは単なる単純なテストですが、動作させることができません...そして、私はすでに多くのチュートリアルを試しました。 HERESに私のコード:ノードjs readlineは入力を評価してエラーを返し続けます

'nodeReadlineTeste':function(){ 

var readline = require('readline'); 

//without terminal:false I was getting double lettering on terminal input... 
var rl = readline.createInterface({input:process.stdin,output:process.stdout,terminal:false}); 

rl.question('What is your name? ',function(resp){getIt(resp)}); 

//this function is to bypass NODE assyncronous nature... I was getting the log before even answering. 
function getIt (resp){console.log(resp); rl.close()}; 

}, 

//このメソッドを実行していると私の名前を応答するとき、私はこの結果を得るには:

> global.nodeReadlineTeste() 
What is your name? undefined 
> Daniel 
ReferenceError: Daniel is not defined 
at repl:1:1 
at ContextifyScript.Script.runInThisContext (vm.js:44:33) 
at REPLServer.defaultEval (repl.js:239:29) 
at bound (domain.js:301:14) 
at REPLServer.runBound [as eval] (domain.js:314:12) 
at REPLServer.onLine (repl.js:440:10) 
at emitOne (events.js:120:20) 
at REPLServer.emit (events.js:210:7) 
at REPLServer.Interface._onLine (readline.js:279:10) 
at REPLServer.Interface._line (readline.js:626:8) 
> Daniel 

は、まさにそれを避けるために仮定readlineのではないでしたか?たぶん私は簡単な間違いをしています、もし私がそれを見つけるのを助けてください。前もって感謝します。

+1

これは必ずしも問題ではありませんが、ノードREPLを使用する場合、 '>'は文/式の実行を期待していることを意味します。したがって、これで問題は解決されませんが、基本的にノードに「Daniel」を実行するように指示していますが、これはどのように行うのか分かりません。 –

答えて

1

このコードをREPLで実行しようとしています。 保存このコード別々<your_file_name>.jsに、問題は、あなたがREPLでこのコードを実行すると、名前Danielで変数を見つけようとして次の行ノードにDanielを入力している際にしようとしているということである node <your_file_name>.js

を実行します。

+0

それだけです、私はそれがいくつかのnoobエラーであることを知っています。ありがとうございました。あなたが指示通りに走っているとき、それは期待どおりに働いた。 REPLモードの詳細については、今や愚かな質問を避けるために学びます。再度、感謝します! –

関連する問題