Чтобы освободить или уничтожить порт сервера в Node.js, вы можете использовать несколько методов. Вот несколько вариантов:
- Мягкое завершение работы:
Вы можете обработать сигнал завершения (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);
});
});
- Использование пакета.
Вы можете использовать такие пакеты, как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);
});
- Подход с использованием командной строки.
Если вы предпочитаете подход с использованием командной строки, вы можете использовать командыlsofиkill. Вот пример того, как можно освободить порт 3000 с помощью этих команд:
lsof -i :3000 # Get the PID of the process using port 3000
kill <PID> # Replace <PID> with the actual process ID