2015-11-14 18 views
5

Obecnie biorę udział w kursie na temat Coursera i wykonuję ćwiczenie przy użyciu kodu node.js w celu obliczenia wyrażenia kwadratowego. Cały kod jest podany, a to ćwiczenie ma na celu tylko sprawdzenie, czy wiemy o pliku node.js, ale nadal napotykam problem z wpisaniem monitu.
kod jest tutaj:Monit Node.js pomijanie danych wejściowych

var quad = require('./quadratic'); 

var prompt = require('prompt'); 

prompt.get(['a', 'b', 'c'], function (err, result) { 
    if (err) { return onErr(err); } 
    console.log('Command-line input received:'); 
    console.log('a: ' + result.a); 
    console.log('b: ' + result.b); 
    console.log('c: ' + result.c); 

     quad(result.a,result.b,result.c, function(err,quadsolve) { 
      if (err) { 
       console.log('Error: ', err); 
       } 
       else { 
      console.log("Roots are "+quadsolve.root1() + " " + quadsolve.root2()); 
       } 
     }); 
}); 

Jak widać, używam moduł prompt, ale kiedy wchodzi wejście dla a, CMD jest omijając wejście b i prosząc mnie, aby wprowadzić `c , co z kolei powoduje błąd.

enter image description here

Jak rozwiązać ten problem, i dlaczego tak się stało?

+0

Jakie są twoje kluczowe pociągnięcia przy wprowadzaniu wartości? Być może coś jest liczone jako wejście lub "powrót", którego się nie spodziewasz. – clay

+0

@clay po prostu numer, a następnie naciśnij enter. Próbowałem też nacisnąć Enter, wynik jest taki sam. –

+0

Czy jesteś w systemie Windows? Być może napotykasz na ten problem: https://github.com/flatiron/prompt/issues/131 – clay

Odpowiedz

3

Witamy w rozwijających się w systemie Windows! System Windows używa powrotu karetki oprócz zakończenia linii \n, co prawdopodobnie powoduje pojawienie się tego błędu. Możesz wymusić monit o tokenizację w regularnym wyrażeniu takim jak to, co powinno poprawić Twój problem:

var schema = { 
    properties: { 
     a: { pattern: /^[0-9]+$/, message: 'a', required: true }, 
     b: { pattern: /^[0-9]+$/, message: 'b', required: true }, 
     c: { pattern: /^[0-9]+$/, message: 'c', required: true } 
    } 
    }; 

    prompt.get(schema, function (err, result) { 
     // .. rest of your code 
    }); 
+0

Wielkie dzięki! –

Powiązane problemy