Nodejs:npm 查询器无法正常工作的类型输入问题
Nodejs: question of type input with npm inquirer not working
我是第一次使用 npm inquirer
。
我使用的代码与此类似:
const inquirer = require("inquirer");
const questions = [
{
type: "checkbox",
name: "collections.telemetria",
message: "Select collections of database telemetria",
choices: [
"chimera-11/14/2019,-4:22:38-PM",
"chimera-11/14/2019,-4:28:26-PM"
]
},
{
type: "checkbox",
name: "collections.testa",
message: "Select collections of database testa",
choices: ["testa_c"]
}
];
async function main() {
const collections = (await inquirer.prompt(questions)).collections;
console.log("collections:", collections);
const outPath = await inquirer.prompt([
{
type: "input",
name: "outPath",
default: "./",
message: "Insert the output path"
}
]).outPath;
console.log(outPath);
}
main();
问题是在回答type input的问题时,出现undefined字样,无法输入。
问题出在 console.log(outPath)
上,因为 returns undefined
导致 terminal
无法使用。删除 console.log(outPath)
它应该可以工作。
我不太确定 .outPath
最后的作用,但您可以删除它以使 console.log(outPath)
正常工作。
所以根据需要删除 console.log()
或 .outPath
。
你可能已经知道 inquirer.prompt
returns 一个承诺,如果你想要结果,你可以这样做
const outPath = inquirer.prompt([
{
type: "input",
name: "outPath",
default: "./",
message: "Insert the output path"
}
]).then(response=>{
console.log(response)
})
在这里你可以看到它为我运行 如果我删除 .outPath
感谢Shivam Sood的指点,发现只是代码有误。在调用预期结果的 属性 outPath
之前,我忘记将 await inquirer.prompt([...])
放在括号内。
所以正确的代码应该是:
const outPath = (await inquirer.prompt([
{
type: "input",
name: "outPath",
default: "./",
message: "Insert the output path"
}
])).outPath;
console.log(outPath);
我是第一次使用 npm inquirer
。
我使用的代码与此类似:
const inquirer = require("inquirer");
const questions = [
{
type: "checkbox",
name: "collections.telemetria",
message: "Select collections of database telemetria",
choices: [
"chimera-11/14/2019,-4:22:38-PM",
"chimera-11/14/2019,-4:28:26-PM"
]
},
{
type: "checkbox",
name: "collections.testa",
message: "Select collections of database testa",
choices: ["testa_c"]
}
];
async function main() {
const collections = (await inquirer.prompt(questions)).collections;
console.log("collections:", collections);
const outPath = await inquirer.prompt([
{
type: "input",
name: "outPath",
default: "./",
message: "Insert the output path"
}
]).outPath;
console.log(outPath);
}
main();
问题是在回答type input的问题时,出现undefined字样,无法输入。
问题出在 console.log(outPath)
上,因为 returns undefined
导致 terminal
无法使用。删除 console.log(outPath)
它应该可以工作。
我不太确定 .outPath
最后的作用,但您可以删除它以使 console.log(outPath)
正常工作。
所以根据需要删除 console.log()
或 .outPath
。
你可能已经知道 inquirer.prompt
returns 一个承诺,如果你想要结果,你可以这样做
const outPath = inquirer.prompt([
{
type: "input",
name: "outPath",
default: "./",
message: "Insert the output path"
}
]).then(response=>{
console.log(response)
})
在这里你可以看到它为我运行 如果我删除 .outPath
感谢Shivam Sood的指点,发现只是代码有误。在调用预期结果的 属性 outPath
之前,我忘记将 await inquirer.prompt([...])
放在括号内。
所以正确的代码应该是:
const outPath = (await inquirer.prompt([
{
type: "input",
name: "outPath",
default: "./",
message: "Insert the output path"
}
])).outPath;
console.log(outPath);