2015-11-14 18 views
5

Attualmente sto seguendo un corso su Coursera e faccio un esercizio usando il codice node.js per calcolare un'espressione quadratica. Tutto il codice è dato e questo esercizio è solo per farci conoscere node.js, ma sto ancora incontrando un problema nell'inserimento di un prompt.
il codice è qui:Node.js prompt saltando input

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()); 
       } 
     }); 
}); 

Come vedi, sto usando il modulo prompt, ma quando entro l'ingresso per a, il cmd è saltare l'input per b e chiedendo me entrare `c , che a sua volta di couse, risultante in un errore.

enter image description here

Come risolvere questo problema, e perché accade?

+0

Quali sono i tuoi tratti chiave quando inserisci i valori? Forse qualcosa viene contato come input o "ritorno" che non ti aspetti. – clay

+0

@clay semplicemente il numero e poi premo invio. Ho anche provato a premere invio, il risultato è lo stesso. –

+0

Sei su Windows? Potresti avere questo problema: https://github.com/flatiron/prompt/issues/131 – clay

risposta

3

Benvenuti nello sviluppo su Windows! Windows utilizza un ritorno a capo oltre a un finale di riga \n che probabilmente è il motivo per cui viene visualizzato questo errore. È possibile forzare la richiesta di tokenize su un'espressione regolare come questa, che dovrebbe risolvere il problema:

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

Grazie mille !!! –

Problemi correlati