Node.js中CRTL-D上的退出CLI

问题描述 投票:0回答:1

我正在构建一个CLI,该CLI为Web应用程序创建入门代码。现在,我们只为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个回答
0
投票

可能您正在使用的readline接口不支持^ D。我建议使用readline内置模块尝试将此行为设置为标准模式。这样,您可以在没有信号SIGINT(没有ctrl + C)的情况下监听“关闭”事件。您可以在node doc

上查看更多信息
© www.soinside.com 2019 - 2024. All rights reserved.