【问题标题】:Console warning not displayed when performing exit in node.js在 node.js 中执行退出时未显示控制台警告
【发布时间】:2014-01-28 15:32:52
【问题描述】:

我是 Node.js 的新手。我在我的网站上实现了\exit 链接。浏览时调用如下函数:

function exitRequest(req, res) {

    res.setHeader('Content-Type', 'text/html');    
    res.send("<html><body>Bye</body></html>");

    console.warn('%s: Exit requested.', Date(Date.now()) );
    process.exit(0);

};

页面显示正常,node.js 服务器关闭,但没有显示控制台警告。但是,在应用程序的其他部分调用console.warn 是成功的。我可以在输出窗口中看到消息。

什么可能导致这个问题?

【问题讨论】:

  • 我相信 console.log 调用是异步的。如果您退出该过程,则它们可能不会被执行。嗯...这个链接说是同步的,但有一些关于这个主题的好信息:stackoverflow.com/questions/5127532/…

标签: javascript node.js console exit


【解决方案1】:

尝试延迟进程终止:

console.warn('%s: Exit requested.', Date(Date.now()));
process.nextTick(function() { process.exit(0); });

或者使用setTimeout:

setTimeout(function() { process.exit(0); }, 0);

如果你不想创建一个新的匿名函数,你可以使用 bind:

var exit = process.exit.bind(process, 0);

// Later...
process.nextTick(exit);

【讨论】:

  • setTimeout(function() { process.exit(0); }, 1000);成功了,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-10
  • 2012-01-17
  • 1970-01-01
  • 1970-01-01
  • 2020-04-18
  • 2021-12-02
  • 2020-09-23
相关资源
最近更新 更多