Je cours sur un comportement étrange du module readline de Node js tout en exécutant le noeud sur le terminal de Linux. Le module fonctionne mais il essaie également d'évaluer l'entrée de l'utilisateur comme s'il s'agissait d'une instruction renvoyant une erreur de référence. C'est juste un test simple que je fais, mais je n'arrive pas à le faire fonctionner ... et j'ai déjà essayé de nombreux tutoriels. Heres mon code:Node js readline continue d'évaluer l'entrée et de renvoyer une erreur
'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()};
},
// Lors de l'exécution de cette méthode et de répondre mon nom, je reçois ce résultat:
> 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
N'a pas été READLINE censé éviter exactement cela? Peut-être que je fais une erreur simple, si oui, s'il vous plaît aidez-moi à le trouver. Merci d'avance.
Ce n'est pas nécessairement le problème, mais lorsque vous utilisez le noeud REPL, '>' signifie qu'il attend l'exécution d'une instruction/expression, il n'attend pas actuellement la saisie par l'utilisateur de votre question. Donc, même si cela ne résout pas le problème, vous dites essentiellement à node d'exécuter 'Daniel', ce qu'il n'a aucune idée de comment faire. –