Node.js提示跳过input

我目前正在Coursera上学习一门课程,并使用node.js代码来计算二次expression式。 所有的代码都给出了,这个练习仅仅是让我们知道node.js,但是我仍然遇到了一个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()); } }); }); 

正如你所看到的,我正在使用prompt模块,但是当我inputa的input时,cmd正在跳过b的input并要求我input'c',然后依次input'c',导致错误。

在这里输入图像描述

如何解决这个问题,为什么会发生?

欢迎在Windows上开发! Windows除了\n行结尾之外还使用回车符,这可能是您看到这个错误的原因。 您可以强制提示对这样的正则expression式进行标记,这将有望解决您的问题:

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