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 });
- AWS Transfer Acceleration使用JavaScript SDK的预签名URL
- 使用Node.js和Express.js删除MySQL中给定数组值的多行
- 如何避免使用dependency injection时使用types检查逻辑填充我的JavaScript代码?
- angularjs nodered注册响应不起作用
- 在同一个提取POST API调用中返回JSON
- Node.js:console.log消息不显示,如果方法抛出exception…为什么?
- Nodejs – 无法读取文件目录中有空格的文本文件
- 节点Express.js 4路由不工作,获取404
- 无法连接Firebase数据库到Express.js服务器