如何在不杀死进程的情况下停止node.js服务器?

Flu*_*ffy 27 node.js

假设服务器创建如下:

var net = require('net');

var server = net.createServer();
server.listen(32323, '127.0.0.1');

server.close(); // gives a "not running" error if there is IP in the listen statement
Run Code Online (Sandbox Code Playgroud)

有没有办法从node.js停止它,例如没有结束/杀死整个过程?

此外,这是一个更复杂的示例,无论服务器绑定到哪个IP,它都不会停止:

var net = require('net');

var server = net.createServer(function(socket) {
    socket.on('data', console.log);
    server.close();
});

server.listen(32323);

var socket = net.createConnection(32323);
socket.write('hi');
Run Code Online (Sandbox Code Playgroud)

Ray*_*nos 25

server.close

"listening"事件发生之前不要打电话关闭.

添加回调listen或手动添加事件

server.listen(port, host, function () { server.close(); });
// OR
server.on("listening", function () { server.close(); });
server.listen(port, host);

var net = require('net');

var server = net.createServer(function(socket) {
    socket.on('data', console.log);
    server.close();
});

server.listen(32323);

var socket = net.createConnection(32323);
// call end to make sure the socket closes
socket.end('hi');
Run Code Online (Sandbox Code Playgroud)