javascript - 如何清除 Inquirer.js 中的错误输入
问题描述
const inquirer = require("inquirer")
var questions = [
{
type: "number",
name: "name",
message: "Please the number of players",
validate: function (name) {
var valid = Number.isInteger(name)
return valid || `Please enter a valid whole number`
},
},
]
function promptUser() {
inquirer
.prompt(questions)
.then((answers) => {
console.log(`You entered ${answers["name"]}!`)
})
.catch((error) => console.log(`Please enter a number`))
}
promptUser()
考虑到上面的代码,我注意到在这样的旧视频中,如果你包含 validate 并且它失败了,输入将被清除。然而,在我的情况下,我得到一个不会自动清除的 NaN。假设我启动应用程序并输入“abcdefg”:
? Please the number of players NaN
>> Please enter a valid whole number
如果我输入任何内容,它只会被添加到 NaN 的末尾。Backspace 和 delete 不会删除 NaN,但是如果我多次按下向上箭头按钮直到不再显示以前的输入,它将被删除。难道我做错了什么?
解决方案
我发现将类型从数字更改为输入就可以了。这是我使用的提示示例。
{
type: "input",
message: "Please enter id:",
name: "id",
validate: (answer) => {
if (isNaN(answer)) {
return "please enter a number";
}
return true;
},
},
推荐阅读
- bash - 安装 TeX:使用 -bash 启动 MacOS 终端:/Applications/MiKTeX:没有这样的文件或目录
- excel - URLDownloadToFile 错误:INET_E_SECURITY_PROBLEM
- node.js - 嵌套在数组中的对象的访问属性嵌套在带有 for 循环的对象中 Mongoose
- graphql - 如何使用过滤器订阅?
- php - CodeIgniter $this->db 获取最后一个主键
- angular - 尝试从角度服务中检索 Http JSON
- php - 这是异步请求。你能帮我在php中改成Curl吗?
- javascript - React Navigation - 带有嵌套导航器的导航选项
- jquery - 环回 3 文件存储连接器
- javascript - 无法从 Bull Queue 节点 Js 中删除可重复作业