Javascript Node.js提示跳过输入

Javascript Node.js提示跳过输入,javascript,node.js,Javascript,Node.js,我目前正在学习Coursera课程,并使用node.js代码进行练习,以计算二次表达式。所有的代码都给出了,这个练习只是为了让我们了解node.js,但我仍然遇到了输入提示的问题。 代码如下: var quad = require('./quadratic'); var prompt = require('prompt'); prompt.get(['a', 'b', 'c'], function (err, result) { if (err) { return onErr(err

我目前正在学习Coursera课程,并使用node.js代码进行练习,以计算二次表达式。所有的代码都给出了,这个练习只是为了让我们了解node.js,但我仍然遇到了输入提示的问题。
代码如下:

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());
                }
       });
});
如您所见,我正在使用
提示符
模块,但是当我输入
a
的输入时,cmd跳过
b
的输入,并要求我输入'c',这反过来又会导致错误


如何解决此问题,以及为什么会发生此问题?

欢迎使用windows进行开发!Windows除了使用
\n
行结尾外,还使用回车符,这可能就是您看到此错误的原因。您可以强制prompt对正则表达式进行标记化,如下所示,这有望解决您的问题:

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

输入值时,您的按键笔划是什么?也许有些东西被算作输入或“返回”,而你并不期待它。@clay只是简单地输入数字,然后我按enter键。我也试着只按回车键,结果是一样的。你在Windows上吗?您可能遇到以下问题: