我刚开始使用 Node.js,不知道如何获取用户输入。我正在寻找 python 函数的 JavaScript 对应物 input()
或 C 函数 gets
。谢谢。
原文由 Serket 发布,翻译遵循 CC BY-SA 4.0 许可协议
我刚开始使用 Node.js,不知道如何获取用户输入。我正在寻找 python 函数的 JavaScript 对应物 input()
或 C 函数 gets
。谢谢。
原文由 Serket 发布,翻译遵循 CC BY-SA 4.0 许可协议
这也可以通过 promises 在本地 完成。它也比使用外部世界的 NPM 模块更安全。不再需要使用回调语法。
来自@Willian 的更新答案。这将适用于 async/await 语法和 es6/7。
const readline = require('readline');
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
const prompt = (query) => new Promise((resolve) => rl.question(query, resolve));
// Usage inside aync function do not need closure demo only*
(async() => {
try {
const name = await prompt("What's your name: ");
// Can use name for next question if needed
const lastName = await prompt(`Hello ${name}, what's your last name?: `);
// Can prompt multiple times
console.log(name, lastName);
rl.close();
} catch (e) {
console.error("Unable to prompt", e);
}
})();
// When done reading prompt, exit program
rl.on('close', () => process.exit(0));
原文由 Josh 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
您可以使用 3 个选项。我将引导您完成这些示例:
(选项1) prompt-sync: 在我看来,是比较简单的一种。它是 npm 上可用的一个模块,您可以参考文档以获取更多示例 prompt-sync 。
(选项 2) 提示:这是 npm 上可用的另一个模块:
(选项 3) readline : 它是 Node.js 中的一个内置模块。你只需要运行下面的代码:
享受!