在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);
});
});
