【问题标题】:Exiting CLI on CRTL-D in Node.js在 Node.js 中使用 CTRL-D 退出 CLI
【发布时间】:2020-03-09 20:20:54
【问题描述】:

我正在构建一个为 Web 应用程序创建起始代码的 CLI。现在我们只设置了一些示例问题的 UI。我们要确保当用户按下 CRTL-C 或 CRTL-D 时,程序干净地退出并出现告别消息。我能够捕捉到 CRTL-C,但它不适用于 CRTL-D。

这是我目前的收获:

let answers = async () => {
    try {
        await prompt(questions)
    } catch (err) {
        console.log(chalk.yellow("Closing web-stater-cli..."))
    }
}

answers()

但是当我按下 CRTL-D 时,它就停止了,没有任何消息。 有人对如何正确退出和显示消息有任何建议吗?

【问题讨论】:

标签: javascript node.js eof


【解决方案1】:

可能您使用的 readline 接口不支持 ^D。我建议使用 readline 内置模块尝试这种行为,将标准输入设置为原始模式。这样您就可以在没有信号 SIGINT(无 ctrl+C)的情况下收听“关闭”事件。您可以在node doc查看更多信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-09
    • 2019-03-19
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多