在Node docs中, http servers appear to have a close event: Event: ‘close’ function () { } Emitted when the server closes. 但我无法弄清楚如何触发它: // server.jsvar http = require('http');var server = http.createServer()
Event: ‘close’
function () { }
Emitted when the server closes.
但我无法弄清楚如何触发它:
// server.js var http = require('http'); var server = http.createServer(); server.on('close', function() { console.log(' Stopping ...'); }); server.listen(8000);
我期待消息“停止…”
$node server.js ^C Stopping ... $
但相反,什么都没有
$node server.js ^C$
关闭是否意味着其他什么?
使用Ctrl C杀死服务器不允许服务器自行关闭;你必须自己做.像这样的东西应该成功(在类UNIX系统上):var http = require('http'); var server = http.createServer(); server.on('close', function() { console.log(' Stopping ...'); }); process.on('SIGINT', function() { server.close(); }); server.listen(8000);
一旦HTTP服务器关闭并且Node意识到没有可以挂起的异步操作,它将自动停止该过程.如果事件循环中有其他内容(计时器等),并且您希望在服务器关闭后强制事件循环停止,则close将进行回调:
process.on('SIGINT', function() { server.close(function() { process.exit(0); }); });