Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Node.js: error 500, debugging, production, logging, monitoring

Как отлаживать ошибку 500 на продакшене?

Вопрос проверяет понимание методов диагностики и исправления серверных ошибок в production-среде без нарушения работы пользователей.

Короткий ответ

Ошибка 500 означает внутреннюю ошибку сервера. Для отладки нужно проверить логи сервера, включить подробное логирование, использовать мониторинг и профилирование. В production нельзя показывать пользователю детали ошибки, но можно использовать инструменты вроде Sentry или New Relic для сбора информации. Также полезно воспроизвести ошибку в staging-среде.

Длинный ответ

Что такое ошибка 500?

Ошибка 500 (Internal Server Error) — это общий ответ сервера, когда произошла непредвиденная ситуация. Она не даёт конкретной информации пользователю, поэтому разработчику нужно самостоятельно выяснить причину.

Основные шаги для отладки

  • Проверка логов сервера: логи приложения, веб-сервера (Nginx, Apache) и базы данных. Ищите stack trace или сообщение об ошибке.
  • Включение подробного логирования: настройте уровень логирования на DEBUG для проблемного модуля, но временно, чтобы не засорить диск.
  • Использование мониторинга: инструменты вроде Sentry, Datadog, New Relic автоматически собирают ошибки и контекст (запрос, заголовки, состояние приложения).
  • Воспроизведение в staging: если ошибка связана с конкретными данными или действиями, попробуйте повторить её в тестовой среде с похожими условиями.
  • Проверка изменений: посмотрите последние деплои, изменения конфигурации или зависимостей.

Пример кода для логирования в Node.js

const express = require('express');
const app = express();

app.use((err, req, res, next) => {
  console.error('Error:', err.stack); // логируем полную ошибку
  res.status(500).send('Something went wrong'); // пользователю — общее сообщение
});

app.get('/data', (req, res) => {
  throw new Error('Database connection failed');
});

app.listen(3000);

В production не показывайте stack trace пользователю — это угроза безопасности. Используйте middleware для централизованной обработки ошибок.

Вывод

Отладка ошибки 500 требует системного подхода: логи, мониторинг, изоляция проблемы. Главное — не раскрывать детали пользователю и быстро восстановить работоспособность. Инструменты автоматического сбора ошибок (Sentry, Rollbar) значительно ускоряют процесс.

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • Node.js

    Node.js

  • Testing

Ключевые слова

#error 500

#debugging

#production

#logging

#monitoring

Подпишись на Java Developer в телеграм