节点js readline继续评估input并返回一个错误

我正在运行在Linuxterminal上运行节点时Node js readline模块的一个奇怪的行为。 该模块不工作,但它也尝试评估用户input,就像它是一个语句,返回一个参考错误。 这只是我做的一个简单的testing,但不能得到它的工作…我已经尝试了很多教程。 下面是我的代码:

'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应该避免这一点? 也许我做了一些简单的错误,如果是这样,请帮我find它。 先谢谢你。

您正试图在REPL中运行此代码。 将此代码保存到单独的<your_file_name>.js并运行node <your_file_name>.js

问题是你正在尝试在REPL中运行此代码,并且在下一行节点中键入Daniel ,试图查找名称为Danielvariables。