节点服务器http关闭事件始终触发

时间:2017-03-13 08:58:13

标签: javascript node.js

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

为此我创建了以下内容:

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

关闭服务器

1 个答案:

答案 0 :(得分:3)

您正在关闭服务器,而不是侦听事件。

而不是:

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