Этот вопрос проверяет умение корректно завершать работу сервера, освобождая ресурсы и предотвращая ошибки.
Изящно остановить сервер в Node.js можно с помощью server.close(), который завершает все активные соединения.
Также следует обработать события SIGINT и SIGTERM для завершения процессов
Чтобы изящно остановить сервер, нужно закрыть все соединения и завершить выполнение текущих операций перед завершением работы приложения.
Пример:
const http = require('http');
const server = http.createServer((req, res) => {
res.end('Сервер работает');
});
server.listen(3000, () => console.log('Сервер запущен на порту 3000'));
// Обработка сигнала завершения
process.on('SIGINT', () => {
console.log('Изящное завершение сервера...');
server.close(() => {
console.log('Сервер остановлен');
process.exit(0);
});
});SIGINT срабатывает при нажатии Ctrl + C.
server.close() завершает все активные соединения и вызывает колбэк, когда завершение будет выполнено.