Как освободить или закрыть порт сервера в Node.js: методы и примеры

Чтобы освободить или уничтожить порт сервера в Node.js, вы можете использовать несколько методов. Вот несколько вариантов:

  1. Мягкое завершение работы:
    Вы можете обработать сигнал завершения (SIGINT или SIGTERM) и корректно закрыть сервер. Это позволяет существующим соединениям завершиться перед выключением сервера. Вот пример:
const http = require('http');
const server = http.createServer((req, res) => {
  // Server logic
});
// Handle termination signals
process.on('SIGINT', () => {
  server.close(() => {
    console.log('Server gracefully terminated.');
    process.exit(0);
  });
});
  1. Использование пакета.
    Вы можете использовать такие пакеты, как kill-portили fkill, чтобы освободить порт сервера. Эти пакеты позволяют вам находить и завершать процессы, использующие определенный порт. Вы можете установить их с помощью npm или Yarn, а затем использовать в своем коде. Вот пример использования kill-port:
const killPort = require('kill-port');
// Kill the process using the specified port
killPort(3000).then(() => {
  console.log('Port 3000 released.');
}).catch((err) => {
  console.error('Error releasing port:', err);
});
  1. Подход с использованием командной строки.
    Если вы предпочитаете подход с использованием командной строки, вы можете использовать команды lsofи kill. Вот пример того, как можно освободить порт 3000 с помощью этих команд:
lsof -i :3000 # Get the PID of the process using port 3000
kill <PID>   # Replace <PID> with the actual process ID