javascript - Node 服务器 http close 事件总是触发

标签 javascript node.js

我正在尝试创建一个在服务器关闭之前触发的关闭事件。

为此我创建了以下内容:

var express = require('express');
var app = express();
var http = require('http').Server(app);
var listenTo = require('./config/port.json')["port"];


http.listen(listenTo, function () {
    console.log('listening on *:' + listenTo);
});

http.on('close', function (event) {
    console.log('closed');
});

但是这只会关闭服务器。

所以我的问题是如何使用 http 监听服务器关闭

最佳答案

您将关闭服务器,而不是监听该事件。

而不是这个:

http.close(function (event) {
    console.log('closed');
});

你应该使用这个:

http.on('close', function (event) {
    console.log('closed');
});

比较一下:

这样:

请注意,如果您想要处理关闭服务器应用程序(终止进程)的事件,而不仅仅是关闭 http 服务器(关闭打开的端口),那么您需要处理不同类型的事件,例如:

process.on('SIGINT', function () {
    console.log('SIGINT caught');
    // if you want to exit then call:
    process.exit();
});

关于javascript - Node 服务器 http close 事件总是触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42759695/

相关文章:

javascript - Node.JS Google Calendar Promise 返回事件列表

javascript - 如果函数有参数则不起作用

javascript - Jquery selectmenu改变下拉值

javascript - JQuery 中的全局变量未在单击函数内更新其值形式

javascript - 安装 electron vs 安装 electron-builder

javascript - 检查 Gulp 中是否存在文件

javascript - 如何相交两个范围数组?

javascript - Django - simplejson 响应

node.js - 无法在 Ubuntu 中安装 Grunt

javascript - 嵌套 .then() 的 Promise